作者热门文章
- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我正在使用 JPEGCAM 允许用户使用他们的网络摄像头拍摄个人资料照片。这将上传一个临时文件:
def ajax_photo_upload
File.open(upload_path, 'w:ASCII-8BIT') do |f|
f.write request.raw_post
end
# @user.photo = File.open(upload_path)
@user.assign_attributes(
:photo => File.open(upload_path),
:orig_filename => "#{current_user.full_name}.jpg"
)
if @user.save
respond_to do |format|
.....
private
def upload_path # is used in upload and create
file_name = session[:session_id].to_s + '.jpg'
File.join(::Rails.root.to_s, 'public', 'temp', file_name)
end
安全删除此临时文件的最佳方法是什么?谢谢
最佳答案
当您知道您已完成对文件的处理时:
File.delete(path_to_file) if File.exist?(path_to_file)
另一件事:确保您始终关闭已打开的文件,操作系统只能处理一定数量的打开文件/文件描述符,当您超过该限制时,您可能会遇到奇怪的错误...因此,当您想在 Ruby 中打开文件时,请始终使用 block 形式:
File.open(path) do |f|
# ...
end
Ruby 会自动为您关闭文件。如果 block 形式不可用,您必须自行关闭文件:
f = File.open(path)
# ...
f.close
因此请确保关闭传递给 @user.assign_attributes(...)
...
关于ruby-on-rails - Rails 如何在不出错的情况下删除文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12808988/
我无法在附加行中显示“真”、“假”、"is"和“否”按钮。 我在这里有一个应用程序:Application 请按照以下步骤使用应用程序: 1。当你打开应用程序时,你会看到一个绿色的加号按钮,点击 在此
我是一名优秀的程序员,十分优秀!