【发布时间】:2014-12-19 06:13:26
【问题描述】:
编辑:问题已解决,我对此发表了评论。
最近我一直在尝试实现将图片上传到我的 RoR Web 应用程序的功能(只是基础知识,将图片本地存储在 app/public/uploads 下)。 我从http://guides.rubyonrails.org/form_helpers.html#uploading-files 的代码开始 一切似乎都运行良好,除非我上传了我刚刚用手机拍摄的照片。录制视频并立即上传就可以了。上传存储在手机中任何位置的图片都可以正常工作。
这是我的html代码:
<div align="center">
<%= form_tag({controller: :static_pages, action: :upload}, multipart: true) do %>
<%= file_field_tag 'picture' %>
<%= submit_tag "Upload picture"%>
<% end %>
</div>
Form 创建一个简单的按钮(“浏览”)和旁边的文本,上面写着“未选择文件”或我选择的文件的名称。
这是我的控制器操作:
def upload
if params[:picture].nil?
redirect_to '/static_pages/error'
return
end
uploaded_io = params[:picture]
if File.open(Rails.root.join('public', 'uploads', uploaded_io.original_filename), 'wb') do |file|
file.write(uploaded_io.read)
end
end
end
最后是路由:
match 'static_pages/upload', to: 'static_pages#upload', via: 'post'
我已经进行了一些调试,在这种情况下似乎没有调用控制器操作 - 用相机拍照并立即上传。文件名每次都在“浏览”按钮旁边,即使我用相机拍摄,所以我猜照片在某处,但不知何故 static_pages#upload 没有被调用。 如果我选择我刚刚从文件中拍摄的图片,它会毫无问题地上传。 我做错了什么?
我是 RoR 和 HTML 初学者。
【问题讨论】:
标签: android html forms ruby-on-rails-4 web-applications