2016-07-16 9 views
1

私はアクションアップロードでcffileをテストしています。私はアップロードを正しく行っているプログラムを書いていますが、エラーメッセージも送っています。メッセージは間違っているように見えますが、修正が必要なものはわかりません。プログラム:coldfusion cffileアップロード奇妙なエラーメッセージを与える

<form method="post" enctype="multipart/form-data" 
name="uploadForm" action= "#reppath#demos"> 
<input name="FileContents" type="file" > 
<input name="submit" type="submit" value="Upload File"> 
</form> 

<cffile action = "upload" 
fileField  = "FileContents" 
destination = "#reppath#/demos" 
nameConflict = "MakeUnique"> 

エラー:

Invalid content type: ''. 
The cffile action="upload" requires forms to use enctype="multipart/form-data". 

The error occurred in /opt/coldfusion8/wwwroot/reports/frag5.cfm: line 20 

18 : <cffile action = "upload" 
19 : fileField  = "FileContents" 
20 : destination = "#reppath#/demos" 
21 : nameConflict = "MakeUnique"> 

フォームは、私はこのエラーを取得していますなぜ私は理解していないようにenctype = "multipart/form-data" を含んでいます。アップロードが実行され、選択したファイルが保存先フォルダに送信されます。

+0

アクション属性は面倒です。 –

+0

フォームのアクションページとファイルの宛先がまったく同じ理由は何ですか?悪いジュジュ。 – TRose

+0

私はこれを行う方法を理解しようとしてきました。ドキュメントはあまり説明的ではありません。アクションページにはどうすればよいですか? –

答えて

1

まあ、私はそれを見つけましたが、それはあなたが期待するものではありません。 Sagar Ganatraは次のように書いています。「何かがアップロードされる前にアップロードコードを実行しようとすると、エラーが発生します。ここでうまくいきました:

<cfif IsDefined("form.FileContents") then <cffile action = "upload">. 

問題はもう消えました。 https://www.experts-exchange.com/questions/27838969/CFFILE-UPLOAD-ENCTYPE-ERROR.html

+0

*それを修正するには、変数が空でないことを確認するために追加のチェックを追加してください*それは別の問題です。元の問題の原因は、エラーメッセージに示されたとおりです。アップロードは、multipart/form-dataを使用して送信する必要があります。コードはフォーム*を処理しようとしていた*前に提出されたので、最初のエンコーディングは間違っていました。したがって、エラー。上記のように、解決策は、フォームが提出されたことを確認することです。その後、cffileを使用します。 – Leigh

+0

はい、リー、素晴らしい説明です。エラーメッセージは形式的には正しいものの、フォームが送信される前にcffileが呼び出されたことはわかりませんでした。 cffileのアップロードのドキュメントは非常に不明瞭で不完全であり、与えられた例も同様に不明です。最善の方法は、通常はフォームの提出を行う場合と同じように、別のページにcffileのアップロードを置くことです。フォームが実際に提出されていない限り、1人はcffileにならないでしょう。 –

関連する問題