2011-06-24 9 views
1

注意をレールにファイルをアップロードしようとすると:私は用意しましたペーストビンのリンクなど、すべての私のコンソール出力を読みやすいこの質問を保つために...例外EOFError(悪いコンテンツ本体)

を私が作成しようとしています私のRoRアプリケーションの基本的な画像ファイルのアップロード。しかし、私は画像添付(単一ファイル入力とマルチパートエンコード形式)でフォームを送信するたびに、私はWEBrickにコンソールに次のエラーを取得するに:

http://pastebin.com/2kRgTaNg

私は今しばらくの間、検索しました他のいくつかの場所に同様の問題があると言われていますが、私が見つけた唯一の処方箋は、特定のバージョンのバグのためにラックテストをアップグレードすることでした。彼らが参照しているバージョンが見つからないようで、gem updatebundle updateを使用していません。ここbundleの出力は次のとおりです。

http://pastebin.com/7QZtGHaG

私は、ラック・テストをアップグレードするために行うことができます他に何かわからない - 私はまだRailsのに非常に新しいですし、一般的なLinux環境。

最後のメモ:4KBから300KBまでさまざまなサイズのファイルをいくつかアップロードしようとしましたが、Firebugの要求サイズは常に216Bです。私はマルチパートファイルのアップロード要求の内部動作に精通しているのではなく、自分のHTMLフォーム自体に問題がある可能性がありますか?同様の問題に

リンク:

Rails3, Cucumber, Capybara, File upload => bad content body (EOFError)?

http://groups.google.com/group/cukes/browse_thread/thread/5028306893c2c54a

答えて

1

問題がRailsの側で、私のフォームではなかったことが表示されます。私はthis jQueryプラグインを使用して、ファイル入力コントロールのスタイルをカスタマイズしていました。それはあなたがそれを提供するどんな要素(私の場合は、私のボタンのdiv)上にopacity:0;とファイル入力コントロールを配置することによって動作します。

何が起きているのかわかりませんが、要求はマルチパートデータの開始境界でブラウザから送信されていますが、本文または終了境界はありません。私はカスタムスタイリングをあきらめたと単純に通常の形で接続し、それはすべてがうまく働いたら

.... 

Request Payload: 
------WebKitFormBoundaryzwgDaIoTked9N6CB 
Content-Disposition: form-data; name="upload"; filename="filename.jpg" 
Content-Type: image/jpeg 


------WebKitFormBoundaryzwgDaIoTked9N6CB-- 

Response Headers: 
... 

.... 

Request Payload: 
------WebKitFormBoundaryzwgDaIoTked9N6CB 

Response Headers: 
... 

の代わりに:他の言葉では、放火犯は、単に、発信要求ペイロードを示しました。 。うまくいけば、これは、同様の問題に遭遇する可能性のある他の人にとっては多少役立ちます!

+0

htmlレイアウトが無効なため、フォームデータが破損する可能性があります。たとえば、 ''の中の 'form_tag'は、間違った場所に' 'を生成します。 –

3

このエラーにSinatraを使用すると、ファイル入力にname属性が指定されていないことが判明しました。

関連する問題