![](/img/trans.png)
[英]Permission denied @ rb_sysopen (Errno :: EACCES) error when trying to execute Ruby program via RubyMine 2019.1
[英]errno::eacces: permission denied @ rb_sysopen when uploading jpg
我正在開發 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
並打印了照片的路徑。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.