0
:image => StorageRoom::Image.new_with_filename(path)

画像のパスを取得する必要があります。これまでのところ、パスを手動で指定して動作しましたが、heroku に入れましたが、Load Error - No such file present と表示されます。参照ボタンを使用してローカル システムのパス値を取得するにはどうすればよいですか。

4

3 に答える 3

0

あなたの問題はパス名に関連しているのではなく、Heroku が読み取り専用のファイル システムを持っているという事実に関連している可能性があります。Heroku アプリでファイルをディスクに書き込もうとしても、うまくいきません。ファイルは保存されません。

例外は「一時」ディレクトリです。そこにファイルを保存することはできますが、単一のリクエストの期間よりも長く保持されることは保証されていません。

開こうとしているファイルは実際に Git リポジトリに保存されていますか? その場合、Heroku アプリのディスク上にあり、開くことができるはずです。

Heroku インスタンスでファイルシステムのレイアウトがどのように見えるかを確認するには、次のようなコントローラー メソッドを作成します。

render :inline => Dir['**/*'].inspect
于 2012-07-25T12:09:38.947 に答える
0
File.expand_path

参考:http ://saaridev.blogspot.com/2006/11/ruby-finding-absolute-path-of-running.html

于 2012-07-25T12:01:40.473 に答える
0

フルパスは必要ありません。ファイルのアップロードに関するクライアント マシンのファイル パスに関する限り、パスはユーザーにセキュリティ リスクをもたらすため、無関係です。

最新のブラウザのほとんどは、ファイル アップロードのファイル パスを送信しません。Javascript または Flash を使用してパスを取得できますが、これを行う背後にあるロジックはまだわかりません。

ユーザーが送信ボタンをクリックすると、ブラウザは少なくとも、ファイル データを含むファイル名と、MIME タイプなどの他の情報を一緒に送信する必要があります。Web サーバーは、ファイルをディスクに書き込むか、無限に近いメモリ リソースがあると仮定してメモリ内で処理します。詳細については、ファイルのアップロードに関するRFC 1867を参照してください。

于 2012-07-25T13:32:52.417 に答える