gpt4 book ai didi

ruby-on-rails - 字符串转换为 ActionDispatch::Http::UploadedFile

转载 作者:行者123 更新时间:2023-12-04 10:22:52 28 4
gpt4 key购买 nike

有没有办法将字符串转换成ActionDispatch::Http::UploadedFile

我需要它能够在 API 请求中传递文件路径以处理将 excel 插入数据库,因为我想使用 rest API 而不是浏览器进行文件上传。

谢谢

最佳答案

只需创建一个 Tempfile 实例并使用它来初始化一个 ActionDispatch::Http::UploadedFile:

tempfile = Tempfile.new(file_name)
tempfile.binmode
# assumes you have a Base64 encoded string passed through JSON
tempfile.write(Base64.decode64(string))
tempfile.rewind

# for security reasons it is necessary to have real content type
content_type = `file --mime -b #{tempfile.path}`.split(';')[0]

ActionDispatch::Http::UploadedFile.new(
tempfile: tempfile,
type: content_Type,
filename: 'original_file_name.xls'
)

它没有很好的记录,但是 the source code非常简单,因为 ActionDispatch::Http::UploadedFile 基本上只是用一些元数据包装临时文件。从多部分请求中实际提取文件的所有艰苦工作都由 Rack 完成。参见 Sending files to a Rails JSON API一个完整的 Controller 示例。

关于ruby-on-rails - 字符串转换为 ActionDispatch::Http::UploadedFile,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60758310/

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