【发布时间】:2020-12-17 05:03:26
【问题描述】:
我正在开发 Rails 应用程序,当我尝试将照片上传到服务器时遇到问题,显示错误消息。在日志文件中出现错误:“Errno::EACCES (Permission denied @ rb_sysopen - /photo.jpg”。问题发生在“File.open(...)”行
我的上传方式:
def upload_photo
logger.info(params.to_s)
logger.info(params[:file].to_s)
photo = params[:file]
filename = photo.instance_variable_get(:@headers).to_s.match(/filename="(.*)"/).captures[0]
File.open("#{PHOTO_DIR}/#{photo.original_filename}",'wb') do |file|
file.write(photo.read)
end
respond_to do |format|
format.html {
render :text => 'File uploaded.'
}
end
end
存储照片的文件夹的权限是“drw-rw-rw-”,所有者是我的用户,组也是我的用户。
我尝试通过使用 chown -R user:user /path/to/photos 收回所有权来解决此问题,但没有成功。
我该如何解决这个问题?
【问题讨论】:
-
您确定
PHOTO_DIR常量设置正确吗?看起来您正在尝试从根目录打开文件,而不是从某个应用文件夹 (...rb_sysopen - /photo.jpg)
标签: ruby ruby-on-rails-4 file-upload