当我尝试使用jQuery文件上传文件时,任何数量的文件都按计划工作,直到5个。当我试图发布5个或更多文件时,服务器会以一个404未找到的文件进行响应,但是POSTing 4文件会被它上传到同一个URL上,并且处理的非常好。有什么问题吗?
我在运行nginx,php和laravel。在尝试过高限值之后,我甚至将client_max_body_size设置为0。
4个文件的访问日志():
192.168.1.144 - - [14/Jan/2014:10:49:28 -0500] "POST /admin/job/1 HTTP/1.1" 302 449 "http://192.168.1.100:8080/admin/job/1/edit" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36" "-"5个文件的访问日志():
192.168.1.144 - - [14/Jan/2014:10:45:01 -0500] "POST /admin/job/1 HTTP/1.1" 404 223 "http://192.168.1.100:8080/admin/job/1/edit" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36" "-"附件是在铬控制台的图像。
5图像上传测试

4图像上传测试

编辑:邮政路线代码:
public function update($id)
{
$input = \Input::except('photos');
$job = \Job::findOrFail($id);
$job->fill($input);
if(Input::hasFile('photos'))
{
$photos = Input::file('photos');
/**
*@var $photos Uploadedfile[]
*/
foreach ($photos as $index => $photo)
{
$fileName = \Str::random(8) .'.'. $photo->getClientOriginalExtension();
$file = $photo->move(public_path() .'/job_images/', $fileName);
$jp = new \Job\Photo(array('image' => $fileName, 'description' => $input['description'][$index]));
$job->photos()->save($jp);
}
}
$job->save();
return Redirect::route('admin.job.show', $id);
}发布于 2014-01-14 16:47:05
因此,在深入研究之后,我发现这个错误出现在php-fpm错误日志中,其中包含以下消息
[14-Jan-2014 16:33:07 UTC] PHP Warning: POST Content-Length of 9142976 bytes exceeds the limit of 8388608 bytes in Unknown on line 0
[14-Jan-2014 16:38:45 UTC] PHP Warning: POST Content-Length of 12260767 bytes exceeds the limit of 8388608 bytes in Unknown on line 0这导致了使用php的问题,最初我将post_max_size更改为0,但也需要将upload_max_filesize = 2M提高到更高的极限,这解决了我的问题。
我还将nginx配置client_max_body_size的限制提高到50M;
https://stackoverflow.com/questions/21117932
复制相似问题