【发布时间】:2014-02-18 02:26:12
【问题描述】:
我正在尝试在我的 Laravel 4 项目中的表单上进行分块上传。到目前为止,客户端位工作,上传以 2MB 块进行分块,并且正在从浏览器发送数据。甚至还有一个方便的进度条来显示上传进度。
问题出在 PHP 端,因为我无法将上传流的内容写入磁盘。系统总是以创建一个 0 字节的文件结束。这个想法是在它们到达时将块附加到已经上传的文件中。
该项目是基于 Laravel 4 构建的,所以我不确定 Laravel 是否会读取 php://input 流并对其进行处理。由于 php://input 只能读取一次,这可能意味着当我的控制器实际尝试读取流时,它会是空的。
控制器如下所示:
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://input 流的内容引出系统吗?
【问题讨论】:
标签: php file-upload stream laravel laravel-4