我一直在尝试进行简单的文件上传,但我找不到可以做到这一点的 gem,所有这些似乎都围绕着 图片。我只想要基本的 .zip 文件上传。有人可以指导我执行此操作的 gem 或构建您自己的自定义的教程 上传。但是,如果没有,我会创建自己的文件上传,但我会遇到以下问题
问题:
当用户点击上传按钮时,我如何将文件的路径存储在数据库中?
场景如下:
表单由以下部分组成:
Title box:
File select box:
Upload button:
数据库表只包含两列,标题(Title)
和文件系统上的文件路径(FilePath)
用户填写标题,浏览系统中的文件,点击上传按钮,文件需要
存储在磁盘上,假设 /public/uploads/file1.zip
同时将上传的标题写入 mysql 数据库以及
现在位于 /public/uploads/file1.zip.
在另一个页面上,我可以简单地查询数据库以检索标题和文件路径,这将显示标题和文件的链接/路径,用户只需单击并下载即可。
在页面上会显示如下:
标题 - 下载
即第 27 届 session 文件 - 下载
其中“标题”= 用户提交的文件标题,“下载”= 您可以单击的实际链接,将从磁盘中检索文件 并开始下载。这需要是从数据库检索标题和文件路径的查询。查询的 我知道该怎么做的部分。它只是将文件上传到该目录的一部分,将特定文件的目录存储在数据库中,并且它是用户提交的标题。
如有任何建议、示例和资源,我们将不胜感激。感谢您的宝贵时间。
最佳答案
阅读uploading files来自 rails guides然后阅读 CarrierWave README .基本上是:
# in the model
mount_uploader :archive, ArchiveUploader, mount_on: :archive_path
# in the controller action
@record = YourModel.new(params[:record]) # moves the file from server upload path to CW cache dir
@record.save # moves the file from CW cache dir to final fs dir, and stores path in mounted_on column
# in the form
<%= f.file_field :archive %>
# in the view
<%= link_to 'Download', @record.archive_url %>
文件系统路径将存储在您挂载的表列中。
关于ruby-on-rails - 将上传文件的路径存储在数据库中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9464150/