Java HTTP-POST图像到Ruby on Rails应用程序

Java HTTP-POST图像到Ruby on Rails应用程序,java,ruby-on-rails-3,paperclip,http-post,Java,Ruby On Rails 3,Paperclip,Http Post,我有一个java字节数组形式的图像。我正试图将这张图片上传到我的Ruby on Rails应用程序中,该应用程序使用了回形针宝石。我的Rails模型如下所示: class App < ActiveRecord::Base has_attached_file :image end 以下是rails控制台上的新调试: Started POST "/apps" for 127.0.0.1 at Mon Jan 31 00:26:07 +0000 2011 Processing by App

我有一个java字节数组形式的图像。我正试图将这张图片上传到我的Ruby on Rails应用程序中,该应用程序使用了回形针宝石。我的Rails模型如下所示:

class App < ActiveRecord::Base
  has_attached_file :image
end
以下是rails控制台上的新调试:

Started POST "/apps" for 127.0.0.1 at Mon Jan 31 00:26:07 +0000 2011
Processing by AppsController#create as HTML
Parameters: {"image"=>#<ActionDispatch::Http::UploadedFile:0x1041491c8 @content_type=nil, @original_filename="icon.jpg", @headers="Content-Disposition: form-data; name=\"image\"; filename=\"icon.jpg\"\r\n", @tempfile=#<File:/var/folders/NU/NUcfnxwVHmmnVUo9JUdNok+++TI/-Tmp-/RackMultipart20110131-3735-1ylugl7-0>>}
SQL (0.1ms)  BEGIN
SQL (1.0ms)  describe `apps`
AREL (0.4ms)  INSERT INTO `apps` (`appName`, `image_file_size`, `created_at`, `image_updated_at`, `image_file_name`, `image_content_type`, `updated_at`) VALUES (NULL, NULL, '2011-01-31 00:26:07', NULL, NULL, NULL, '2011-01-31 00:26:07')
[paperclip] Saving attachments.
SQL (1.3ms)  COMMIT
Redirected to http://localhost:3000/apps/36
Completed 302 Found in 18ms

我哪里做错了

我认为问题在于,当没有名为App的参数,只有image时,您尝试使用params[:App]创建应用程序。我认为以下创建操作应该起作用:

@app = App.new(:image => params[:image])
另一个好方法是在应用程序模型中添加以下验证,以确保在未保存图像的情况下不会将记录保存到数据库中

validates_attachment_presence :image

您使用的HTTP库是什么?Apache Commons HTTPClient 4.1从日志中看,似乎有一个条目正在插入数据库并保存了附件,您能否确认情况是否如此?在AppsController中看到创建操作也会很有趣,你能把它也包括在你的问题中吗?@DanneManne。是,正在将条目插入数据库中,但未保存附件。如果查看调试,还将注意到所有值都设置为null。我还评论了ApplicationController中的“防止伪造”;在评论“防止伪造”之前,我得到的是无效的真伪令牌。
@app = App.new(:image => params[:image])
validates_attachment_presence :image