gpt4 book ai didi

ruby - 使用 Sinatra 上传图片到 Postgres

转载 作者:行者123 更新时间:2023-11-29 13:25:15 24 4
gpt4 key购买 nike

所以,我正在尝试创建一个小型图像发布博客,有点像 tumblr,但仅用于辛普森一家的图像(用于类)。

我正在尝试使用 Sinatra 直接上传到 Postgres 数据库,我可以获得连接并添加内容,但添加每个细节,而不仅仅是图像。我得到了这个垃圾:

"image/png", :name=>"file", :tempfile=>#, :head=>"Content-  Disposition: form-data; name=\"file\"; filename=\"Homer_Simpson_4.png\"\r\nContent-Type: image/png\r\n"}" alt="">

图像应显示的位置。

我认为它与转换图像以使其可读有关。二进制数据?我只想将图像存储在数据库中,并可能重命名它以便于保存。

这是我的上传路径

post '/upload' do
@post = Post.new

@post.content = params[:file]
@post.user_id = current_user.id
@post.save

unless params[:file] &&
(tmpfile = params[:file][:tempfile]) &&
(name = params[:file][:filename])
@error = "No file selected"
return erb :submit
end
STDERR.puts "Uploading file, original name #{name.inspect}"
while blk = tmpfile.read(65536)
# here you would write it to its final location
STDERR.puts blk.inspect
end
"Upload complete"
redirect to '/'
end

我从 ruby​​-forum 获得了这段代码,它做了我认为它会做的所有事情,并让我返回,甚至做了一些存储。

这是我的表格:

<form action="/upload" method="post" enctype="multipart/form-data">
<label for="">Upload an Image</label>
<input type="file" name="file" />
<button>Submit</button>
</form>

我有一个帖子数据库模型(事件记录),列只是帖子的 ID、内容和发帖人的 user_id。

我以前从未尝试过任何类型的 uploader ,所以我对文件上传的存储方式感到非常困惑。我需要一个新的图像列吗?或者一张 table ?

抱歉,如果这是一个问题,我正在努力研究我的 Stack Overflow 功能(事实证明它是开发的一个非常重要的部分,连同谷歌搜索)。

最佳答案

你真的应该看看refilecarrierwave两者都是由优秀的开发人员编写的,使工作变得非常简单。真的,不要尝试存储在数据库中,你绝对不能存储在 Heroku 上。

关于ruby - 使用 Sinatra 上传图片到 Postgres,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35006214/

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