これを機能させるために何時間もインターネットを検索しましたが、運がありませんでした。
ファイルをアップロードし、それを public/uploads ディレクトリ (既に存在する) に書き込もうとしました
name = archivo.original_filename
directory = "public/uploads"
path = File.join(directory, name)
Dir.mkdir(directory) unless File.directory?(directory)
File.open(path, "wb") { |f| f.write(archivo.read) }
そして、私は例外を取得します
No such file or directory - public/uploads/SERVITEST.xls
絶対パスを使用して /tmp ディレクトリからファイルを読み取ろうとしましたが、うまくいきませんでした。次の例外が発生しました。
Permission denied - oo_7598_6341257208
ファイルアップロードのすべての例で、コントローラーがパブリックディレクトリを見ることができるのを見たので、何が起こっているのか本当にわかりません
前もって感謝します
挨拶
解決:
ぐっすり眠り、コーヒーを数杯飲んだ後、「そのようなファイルまたはディレクトリはありません」という問題を次のように解決しました。
directory = Rails.root.join("public","uploads");
また、未定義の ROO_TMP 環境変数にアクセスしようとしていたため、「許可が拒否されました」の問題は roo gem の問題でした。
export ROO_TMP=/tmp
助けてくれてありがとう :D