我正在使用 restclient 的多部分表单将数据发送到一个安静的 Web 服务(它是 Panda 视频编码服务)。不过,诀窍是我传递给 restclient(Technoweenie 分支)的文件来自我自己的用户提交的表单。
所以,让我们来看看这个。用户将文件发布到我的 rails 应用程序。在我的控制器中,它从 params[:file] 接收文件。然后我想使用 RestClient 将 params[:file] 传递给 Panda。
我得到的错误出现在 Panda 服务器上。我注意到堆栈跟踪中的文件参数也在一个字符串中(我假设 Panda 变成了一个字符串以获得更好的堆栈跟踪)。
~ Started request handling: Wed Aug 12 18:05:15 +0000 2009
~ Params: {"format"=>"html", "multipart"=>"true", "account_key"=>"SECURE_KEY", "action"=>"upload", "id"=>"SECURE_ID", "controller"=>"videos", "file"=>"#<File:0xcf02ca4>"}
~ 9bfb1750-6998-012c-4509-12313900b0f6: (500 returned to client) InternalServerErrorcan't convert nil into String
/var/local/www/panda/app/models/video.rb:246:in `extname'
/var/local/www/panda/app/models/video.rb:246:in `initial_processing'
/var/local/www/panda/app/controllers/videos.rb:79:in `upload'