Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript RubyonRails和FileUpload的问题_Javascript_Ruby On Rails_Image Uploading - Fatal编程技术网

Javascript RubyonRails和FileUpload的问题

Javascript RubyonRails和FileUpload的问题,javascript,ruby-on-rails,image-uploading,Javascript,Ruby On Rails,Image Uploading,我一直在努力解决这个奇怪的问题,把大图像上传到服务器上。我在客户端使用upload,服务器是Rails 4和carrierwave,用于处理图像(尽管看起来它似乎无论如何都无法到达) 只要图像小于1.2MB,一切正常。但一旦图像比这个大,我就会从服务器得到这个响应,而不是正常的响应: HTTP/1.1 500 Internal Server Error Content-Type: text/html; charset=utf8 X-Pow-Template: error_starting_app

我一直在努力解决这个奇怪的问题,把大图像上传到服务器上。我在客户端使用upload,服务器是Rails 4和carrierwave,用于处理图像(尽管看起来它似乎无论如何都无法到达)

只要图像小于1.2MB,一切正常。但一旦图像比这个大,我就会从服务器得到这个响应,而不是正常的响应:

HTTP/1.1 500 Internal Server Error
Content-Type: text/html; charset=utf8
X-Pow-Template: error_starting_application
Connection: keep-alive
Transfer-Encoding: chunked
根据development.log,服务器正在执行一个简单的“在1402ms内创建完成的201”,如routes.rb中所定义的(不过没有执行任何操作)。发送到服务器的标头为:

POST /images HTTP/1.1
Host: mysite.dev
Connection: keep-alive
Content-Length: 1081439
Accept: application/json, text/javascript, */*; q=0.01
Origin: http://mysite.dev
X-CSRF-Token: ynCLWDzF90l3BhmMcmxF+KCFiws3tnQiFAuWp+Buqcw=
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.65 Safari/537.36
X-Requested-With: XMLHttpRequest
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryT5ZwwFlboJY4Cz7n
Referer: http://mysite.dev/images/new
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8,ru;q=0.6
我真的不明白我做错了什么,因为我的客户端设置与Blueimp演示中指定的设置没有太大区别:

  url: "/images"
  paramName: "image[image]"
  type: "POST"
  dataType: "json"
  formData: ""
  disableImageResize: false
  acceptFileTypes: /(\.|\/)(gif|jpe?g|png)$/i
控制器操作的代码为

def create
  @image = Image.create image_params
  respond_with @image, layout: false
end
如果文件较小,一切都会顺利进行:

HTTP/1.1 201 Created
X-Frame-Options: SAMEORIGIN
X-XSS-Protection: 1; mode=block
X-Content-Type-Options: nosniff
X-UA-Compatible: chrome=1
Location: http://mysite.dev/images/298
Content-Type: application/json; charset=utf-8
ETag: "410e24f50d02125716bfc46eb7850c1f"
Cache-Control: max-age=0, private, must-revalidate
X-Request-Id: 40e527d0-e16a-4a4e-a2e5-6124d8e639ff
X-Runtime: 1.533655
Connection: close
从客户端发送的头是相同的,所以这里没有区别。我想我的服务器配置可能有一些问题(不接受大文件),但我找不到

谢谢你的帮助


UPD:找到了原因,实际上是战俘造成了所有的麻烦。本机服务器运行时一切正常。

服务器端是否存在超时问题?如何检查?有什么方法可以配置它吗?但我认为没有,错误几乎会立即发生,比如2-3秒(如果文件大小较小,上传可能需要10秒或更长时间)。如果服务器返回“201 Created”,客户端为什么会收到“500 internal server error”?好的,我再次检查了它,并且服务器上没有201 Created消息。500内部服务器错误仍然存在。