FileUploader 4.4を実装しましたが、Coldfusionを使用して複数のファイルをアップロードするときに完全に機能します。
エンドポイントコードは非常に単純で、次のようになります。
<cffile action="upload"
destination="#application.Config.imageDir#"
nameconflict="overwrite"
filefield="FORM.qqFile" />
<cfif CFFILE.contenttype EQ "image" OR ListFindNoCase("jpg,jpeg,gif,png", CFFILE.serverFileExt)>
<cfset local.fileName = CFFILE.serverFile />
</cfif>
単一または複数の画像をアップロードするたびに、local.filename変数は、qqfilenameに通常表示される画像ファイル名の値(「image0001.jpg」など)に正しく設定されます。
このデータを送信するためのjavasriptコードは次のとおりです。
$('#fine-uploader').fineUploader({
request: {
endpoint: '<cfoutput>#application.Config.fineUploaderProxy#?cfc=#cfcName#&functionName=#functionName#</cfoutput>'
}
});
ただし、スケーリングを追加するとすぐに、奇妙な動作が発生し始めます。スケーリングされたバージョンはアップロードハンドラーに送信されますが、送信されるファイル名は、「image0001(small).jpg」のような名前ではなく、スケーリングされたすべての画像に対して常に「blob」です。
スケーリングをアクティブにするために追加するコードは単純です。
$('#fine-uploader').fineUploader({
scaling: {
sizes: [
{name: "small", maxSize: 50}
]
},
request: {
endpoint: '<cfoutput>#application.Config.fineUploaderProxy#?cfc=#cfcName#&functionName=#functionName#</cfoutput>'
}
});
ファイル名「blob」が実際のファイル名ではなくqqfileに含まれている理由について、誰かが私を助けてくれませんか?最新バージョンのChromeを使用しています。
ありがとう
これは、Fine UploaderがFile
参照ファイルからスケーリングされたバージョンを生成するときに、実際にはを送信しないためです。エンティティは具体的にはBlob
です。aFile
にはnameプロパティがありますが、aにBlob
はありません。このため、ブラウザは、のマルチパートセグメントを作成するときにBlob
、filename
パラメータを「blob」に設定します。これを克服する方法はありますが、確実にクロスブラウザではありません。したがって、Fine Uploaderは、常に実際のファイル名を「qqfilename」パラメーターで送信します。サーバーはこの値を調べて、すべての場合にファイル名を確実に判別する必要があります。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加