【问题标题】:404 Not Found on File Upload After 5 Files5 个文件后上传文件时找不到 404
【发布时间】:2014-02-02 18:31:01
【问题描述】:

当我尝试使用 jQuery File Upload 上传文件时,所有文件都按计划运行,直到 5 个为止。当我尝试发布 5 个或更多文件时,服务器响应 404 Not Found,但 POSTing 4 个文件到它上传和处理的相同 URL 非常好。可能是什么问题?

我正在运行 nginx、php-fpm 和 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" "-"

附件是 chrome 中的控制台图像。

5张图片上传测试

4 图片上传测试

编辑: POST 路由代码:

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);
    }

【问题讨论】:

  • 你能把路由重定向到的代码贴出来吗?
  • @Pat 上传,抱歉
  • 我建议在 if 之前、foreach 之前和 return 之前使用 die 和 dump 来查看它到底到达哪里但失败了。
  • @Pat 已经尝试过了,问题是它永远不会到达代码。服务器以 404 响应
  • 所以它甚至没有进入功能?

标签: php jquery file-upload nginx laravel


【解决方案1】:

所以在深入挖掘之后,我发现错误显示在 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;

【讨论】:

  • 是的,我想说看看“upload_max_filesize”和“post_max_size”
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-04-08
  • 1970-01-01
  • 1970-01-01
  • 2021-08-18
  • 2012-03-26
  • 2019-07-15
  • 1970-01-01
相关资源
最近更新 更多