gpt4 book ai didi

ruby-on-rails - 仅获取文件名作为字符串

转载 作者:行者123 更新时间:2023-12-01 12:32:27 24 4
gpt4 key购买 nike

我正在尝试在 rails 中上传文件

我用下面的代码创建了一个模型

def self.save(upload,id)
name = upload[:img].original_filename
directory = "public/user_db"
# create the file path
path = File.join(directory, id)
# write the file
File.open(path, "wb") { |f| f.write(upload['img'].read) }
end
end

我的 View 有以下字段。

<div class="field">
<input type="file" name="img" id="img" placeholder="upload your DP" />
</div>

我的 Controller 调用保存函数如下:

post = DataFile.save(params,@fbuser.id)

但是我收到了这个错误 enter image description here

最佳答案

帮自己一个忙,不要重新发明轮子。在 Rails 中,有 3 个很棒的 gem 可以处理文件上传,其中 eatch 有一个很好的社区支持和大量共享代码。

载波 https://github.com/carrierwaveuploader/carrierwave

回形针 https://github.com/thoughtbot/paperclip

蜻蜓 https://github.com/markevans/dragonfly

只需按照安装说明进行操作,迁移数据库,告诉您的模型如何行为,您就可以在 5 分钟内解决所有令人头疼的问题:-)

关于您的问题-

name = upload[:img].original_filename 这会引发预期,因为 upload[:img] 只包含一个字符串。所以不需要 .original_filename

但再次强调 - 请使用其中一个 gem(或者可能只是阅读代码以了解如何做)。还有 Railscasts 在那里 http://railscasts.com/episodes/253-carrierwave-file-uploadshttp://railscasts.com/episodes/134-paperclip https://www.youtube.com/watch?v=gp_kn6afl-Y

干杯

关于ruby-on-rails - 仅获取文件名作为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32305070/

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