0

ユーザーが Coldfusion サーバーにファイルをアップロードできるようにする JQUERY ファイル アップロード プラグインがあります。プラグインは、ファイルの内容に GetHttpRequestData() を使用する必要がある方法でファイルをサーバーに送信します。ファイルデータの処理に関して、これまでのところ私が持っているものは次のとおりです。

<cfparam name="URL.qqfile" type="string">
<cfset x = GetHttpRequestData()>
<cffile action="write" output="#x.content#" file="c:\temp\#URL.qqfile#">

これはうまくいきますが、これを次のステップに進めることができないようです。

私が次にやりたいことは: A. ファイルの拡張子を決定します。B. アプリで定義された受け入れられた拡張子 (JPG、PNG、PDF、DOC、DOCX など) である場合は、サーバー上の正しいディレクトリにアップロードします。次に、C の上の一時ファイルを削除します。アップロードされたファイルが画像の場合は、CFIMAGE を使用してサムネイルを作成します。

GetHttpRequestData の問題を使用して上記の手順 AC を実行するにはどうすればよいですか?

ありがとう

4

1 に答える 1

3

いくつかのヒント:

  • GetHttpRequestData()viaの結果構造を見てください<cfdump>
  • この構造体にアクセスして、必要なヘッダーを引き出します。通常、Content-Type ヘッダーには、知りたい情報が含まれています。List 関数(適切な区切り文字を使用したListLen()ListFirst()ListLast())を使用して、文字列を簡単に解析できます。ListRest()
  • StructKeyExists()構造体パーツの欠落を防ぐために常に使用します。「通常」この構造体にあると思われるものを当然のことと考えないでください。
  • ファイル拡張子や Content-Type ヘッダーを盲目的に信頼しないでください。また、アップロードされたファイルの最初の数バイトを調べ、それらをホワイト リストと比較してファイル タイプを確認します。
  • をご覧ください<cffile action="upload">
  • 必要に応じて、ドライブ容量テストを実行して、アップロードされたデータがサーバーを詰まらせていないかどうかを評価したり、別の方法で制限を適用したりします。
  • のドキュメントを読みます<cfimage>それを使用してサムネイルを作成するのはそれほど難しくありません。
于 2010-07-25T17:13:34.090 に答える