我想要在我的Laravel 4項目中獲得分塊上載在窗體上工作。客戶端位工作到目前爲止,上傳以2MB塊爲單位,數據正在從瀏覽器發送。甚至還有一個方便的進度條來顯示上傳進度。PHP輸入流返回0數據 - Laravel
問題出在PHP端,因爲我無法將上傳流的內容寫入磁盤。系統總是以創建的0字節文件結束。這個想法是在他們到達時將塊添加到已經上傳的文件中。
該項目建立在Laravel 4上,所以我不確定Laravel是否讀取了流並執行了一些操作。由於php://輸入只能被讀取一次,這可能意味着當我的控制器實際嘗試讀取它的流時,它將是空的。
控制器如下所示:正在創建
public function upload()
{
$filename = Config::get('tms.upload_path') . Input::file('file')->getClientOriginalName();
file_put_contents($filename, fopen('php://input', 'r'), FILE_APPEND);
}
的文件,但它的長度始終保持爲0字節。任何想法如何我可以哄騙流出系統的內容:php://輸入?
無論我嘗試什麼,示例中的$ putdata總是包含'' –
,但在我的示例中,putdata是指向文件的指針,而不是字符串。這就是爲什麼我使用while循環。如果你想擁有輸入內容,可以使用'$ string = file_get_contents(「php:// input」);'或者如果你在我的例子中這樣做,並且你想檢查內容而不是寫入它該文件使用'while($ data = fread($ putdata,1024)){$ string。= $ data; fwrite($ fp,$ data); }' –
感謝卡洛斯。 $ content = file_get_contents(「php:// input」);是我嘗試過的,但它返回「」。我甚至嘗試了這個鏈接的建議:http://www.codingswag.com/2013/07/get-raw-post-data-in-laravel/但它不起作用。 –