- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在编写将记录存储在数据库表中的 Ruby-on-Rails 应用程序(记录数不超过 200 行)。每条记录都与一个 jpeg/png 图像或图标(最大尺寸 32x32)相关联。所以我的应用程序必须将图像上传并保存在服务器上的特定文件夹中。
在文档中它说“params 哈希中的对象是 IO 子类的实例。根据上传文件的大小,它实际上可能是 StringIO 或由临时文件支持的 File 实例。 ".
我的问题:服务器上的这个临时文件夹在哪里?它是系统相关的还是应用程序相关的?
最佳答案
您的临时文件的位置可能取决于系统,可能在某处的 /tmp
文件夹中。
但你真的不需要知道。
上传的图像要么作为 StringIO 对象存储在内存中,要么保存到主机服务器上的临时文件中。这是rails提供的优化。如果图像足够小,Rails 会传递给您一个 StringIO 对象,它基本上是加载到内存中的整个图像。如果图像较大,它会向您传递一个代表磁盘上临时文件的实例。
你只想将它保存到一个已知的文件夹,比如 uploads
。您无需关心图像是存储在内存中还是存储在磁盘上。
StringIO 对象和临时文件支持的对象都响应 :read
方法。您所要做的就是调用 read 来获取数据,然后将其写入您想要的位置。
image_as_io = params[:image]
filename = ... # determine a filename for the image
File.open(Rails.root.join('public', 'uploads', filename), 'wb') do |file|
file.write(image_as_io.read)
end
关于ruby-on-rails - 我们上传文件时的临时文件夹在哪里,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23086891/
我有以下正则表达式 /[a-zA-Z0-9_-]/ 当字符串只包含从 a 到z 大小写、数字、_ 和 -。 我的代码有什么问题? 能否请您向我提供一个简短的解释和有关如何修复它的代码示例? //var
我是一名优秀的程序员,十分优秀!