2009-08-25 11 views
0

ファイルシステムに保存される前に、アップロードされたファイルのビットを検査する必要があります。 PHPのドキュメントには、利用できるプロパティ(http://us3.php.net/manual/en/features.file-upload.post-method.php)を正確に教えてくれる素敵なページがありますが、RubyやRailsのようなものは見つけられません。RoR:アップロードされたファイルの検査

アップロードのJSON形式の文字列をロギングしようとしましたが、冗長なUTF-8エラーが発生します。私は他の何かを試してみることはできません。

誰でも洞察力を提供したり、適切な場所を指摘できますか?

ありがとうございました。

更新:私は、OS 2.x(Leopard)でApache 2.11を実行しています(下記参照)。

更新:私の入力パラメータは役に立ちます。入力パラメータは"upload"=>#<File:/tmp/RackMultipart.64239.1>と記録されています。私はそのパーツにアクセスするためにアクセスする方法がわかりません。

答えて

4

をアップロードが読み込まれるまで、物理的なファイルはありません。これはderfredの返答とインラインである。 アクセスすることができる唯一のメタデータは次のとおりです。

uploaded_file.content_type # the uploaded file's MIME type 
uploaded_file.original_path # which is really just the name of the file 

また、ファイルのコンテンツにアクセスし、おそらく、永続的なファイルシステムに書き込むことを可能にするuploaded_fileread方法があります。私が気づいた他の

何かがのみはRubyがファイルのMIMEタイプは、アップロードされたファイルのこのcontent_typeプロパティにある点検するために提供しています意味です。ファイルがファイルシステム上に置かれると、MIMEタイプにアクセスする方法や決定する方法はなくなりました。

0

これは、使用しているWebサーバーによって異なると思います。 mongrel、apache、nginxの分野が異なることを覚えています。

+0

私はそれに応じて元の質問を更新します。私は、これについて、またはアップロードを確実にダンプする方法について、どれほどの情報が得られないのか驚いています。 –

0

これはただのFileオブジェクト、あなたが行くことによって複製することができるものです。

File.open("some_file") 

/tmp/RackMultipart.64239.1だけですファイル名。あなたは、コントローラから/出力、その内容を見たい場合は

は:私の知る限り伝えるか、見つけることができましたよう

puts params[:upload].read 
+0

私はファイル名が永続的な場所に保存する前に調べることができる物理的なファイルを表していたと思います。それは事実ではないようです。アップロードから収集できるcontent_typeやoriginal_filenameなどのプロパティがありますが、その時点で利用可能なプロパティの完全なセットが見つかりません。 –

関連する問題