gpt4 book ai didi

ruby-on-rails - 如何为临时文件设置内容类型

转载 作者:行者123 更新时间:2023-12-04 21:42:58 24 4
gpt4 key购买 nike

我有一个 rake 任务,它获取 XML 文档并将它们保存到我的应用程序中的模型中。该任务一直有效,直到我将 content_type 的验证添加到模型中

任务现在给出错误:

Datafile content type is invalid, Datafile is invalid

如何将 tmp 文件的 content_type 设置为 text/xml 以便验证通过?

任务代码如下:
  task :fetch_documents => :environment do        
Net::FTP.open("www.example.com", "xxxxx", "xxxxx") do |ftp|
ftp.nlst.each do |file_name|
tmp = Tempfile.new(['foo', '.xml' ])
ftp.gettextfile(file_name, tmp.path)
# save it
document = Document.new
document.file_name = File.basename(file_name)
document.datafile = tmp
document.save!
tmp.close
end
end
end

最佳答案

我能够找到像这样使用的内容类型:

gem install mime-types

并添加到我的 rake 任务中:
require 'mime/types' 

然后我闯入 pry repl 并使用
MIME::Types.type_for(tmp.path).first.content_type 

这使我能够将正确的 mime 类型添加到模型验证中:
application/xml

当表单上传的文件是 text/xml 时,我不确定为什么文件是 application/xml 但事后看来,这是一个非常明显的修复!

关于ruby-on-rails - 如何为临时文件设置内容类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21808468/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com