簡體   English   中英

Laravel:使用Response :: download的下載速度很慢

[英]Laravel: Slow download using Response::download

所以我有一個很大的(1.7mb)jpg文件,我想允許用戶下載它作為屏幕牆紙。 我正在使用以下內容:

/**
* getWallpaper
* Download the wallpaper in jpg format from above web root
* 
* @return file
*/
public function getWallpaper()
{
$file = "../downloads/myfile.jpg";

$headers = array('Content-Type: image/jpeg');

return Response::download($file, 'myfile.jpg', $headers);
}

這在我的本地開發服務器上確實非常快,但是要花大約14秒鍾,瀏覽器下載對話框才會出現在我的生產服務器上。 有任何想法嗎? 服務器級別的設置可能不匹配,如果是,我應該查看哪些設置? 謝謝你的幫助。 奧利。

我只是在猜測,但是您可以嘗試設置附件和內容類型標頭,然后立即調用flush()將信息發送給客戶端,以便打開對話框。

public function getWallpaper(){
    $file = "../downloads/myfile.jpg";

    header('Content-Type: image/jpeg');
    header('Content-Disposition: attachment; filename="myfile.jpg"');

    flush();

    return Response::download($file, 'myfile.jpg');
}

在我看來,這有點怪(也是多余的,因為我們要設置標頭,然后在Response::download再次設置標頭),但是如果可行,您可以擴展Response類或其他方法。

以防萬一有人遇到相同的問題-對我來說,這原來是網絡連接問題。

在我的工作連接上,下載對話框出現之前我仍然要等待很長時間,而在家里卻幾乎立即出現。 我不知道為什么!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM