如何解决errno :: eacces:上传jpg时权限被拒绝@ rb_sysopen
我正在开发Rails应用程序,尝试将照片上传到服务器时遇到问题,显示错误消息。在日志文件中,我出现错误:“ Errno :: EACCES(权限被拒绝@ @ 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常量,因为它已在constants.rb文件中设置为env变量。
PHOTO_DIR = ENV['PHOTO']
当我用目录的完整路径更改env变量时,一切都按预期工作。
PHOTO_DIR = '/path/to/jpg_files/'
似乎env变量未加载到〜/ .bashrc文件中,但是我尝试了echo $PHOTO
并打印了照片的路径。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。