【问题标题】:Transloadit: Sending 0 byte file while request.body.read is not emptyTransloadit:在 request.body.read 不为空时发送 0 字节文件
【发布时间】:2011-11-29 14:24:33
【问题描述】:

我正在使用 transloadit 并使用 valumns 文件上传器通过 xhr 发送文件。

文件被发送到服务器没有错误(我检查了request.body.read的大小和内容)但是一旦我这样做了:

响应 = 组装。提交! (request.body)

发送了一个空文件(我在程序集历史记录页面中检查了很多次)。

感谢您的帮助。

【问题讨论】:

  • 试试:require 'stringio'; response = assembly.submit!(StringIO.new(request.body.read))
  • 嗨,我试过了,但也没有用。它一直发送一个空文件。
  • 我在rails和carrierwave中遇到了同样的问题。我可以将 request.body.read 写入文件,但是当我将它传递给carrierwave时,我得到: ArgumentError (string contains null byte)
  • @huug 尝试发送小于 100ko 的发送文件,看看我们是否有同样的问题。当我发送大小 > 100ko 左右的文件时,它可以工作,但是当大小较小时,它就不行了。

标签: ruby ajax upload sinatra xmlhttprequest


【解决方案1】:

在使用request.body之前,请致电request.body.rewind

【讨论】:

  • 谢谢@Konstantin Haase,它部分工作!当我发送大小> 100ko 左右的文件时,它可以工作,但是当大小较小时,它就不行了!
  • 奇怪,你用的是什么服务器?
  • 你检查过请求头吗?可能是对于小文件,您的上传者不使用多部分,而是切换到常规的 http post 样式请求。
  • -@evaneykelen,我总是检查 response.body.read 的大小文件和数据是否有效。我还确认无论文件大小如何,上传者始终使用 xhr。感谢您的帮助。
猜你喜欢
  • 1970-01-01
  • 2011-04-13
  • 2018-05-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多