これが最終的に私がやった方法です:
myAwesomeDropzone.on('addedfile', function(file) {
var ext = file.name.split('.').pop();
if (ext == "pdf") {
$(file.previewElement).find(".dz-image img").attr("src", "/Content/Images/pdf.png");
} else if (ext.indexOf("doc") != -1) {
$(file.previewElement).find(".dz-image img").attr("src", "/Content/Images/Word.png");
} else if (ext.indexOf("xls") != -1) {
$(file.previewElement).find(".dz-image img").attr("src", "/Content/Images/Excel.png");
}
});
デフォルトのプレビューテンプレートに合わせるには、画像を120x120ピクセルにする必要があります。
これが結果です:
今、これを行う簡単な方法を見つけました。私はjQueryを使用してamであることに注意してください。そのため、それも必ず含めてください。
まず、Dropzoneにid
があることを確認してください。鉱山はmyAwesomeDropzone
です:
_<form id="myAwesomeDropzone" action="/upload-target" class="dropzone"></form>
_
次に、含めたいファイルタイプごとに画像アイコンを作成します。 PDFとWordのアイコンを見つけ、img
というディレクトリに置きました。
次に、次のJavaScriptを含めます。
_// Make sure to use YOUR Dropzone's ID below...
Dropzone.options.myAwesomeDropzone = {
accept: function(file, done) {
var thumbnail = $('.dropzone .dz-preview.dz-file-preview .dz-image:last');
switch (file.type) {
case 'application/pdf':
thumbnail.css('background', 'url(img/pdf.png');
break;
case 'application/vnd.openxmlformats-officedocument.wordprocessingml.document':
thumbnail.css('background', 'url(img/doc.png');
break;
}
done();
},
};
_
上記のコードはPDFおよびWordで機能します。さらに追加したい場合は、このテンプレートを使用してcase
sをswitch
ステートメントに追加します。
_case '[mime type]':
thumbnail.css('background', 'url(img/[icon filename]');
break;
_
accept
関数にconsole.log(file.type);
を追加してMIMEタイプを検索し、テストファイルをドロップして、ブラウザーのコンソールを確認できることに注意してください。
Dropzoneを使用すると、_Dropzone.options.[your dropzone's id]
_の形式の構成オブジェクトでドロップゾーンを構成できます。オプションの1つは、ファイルが受け入れられる前に起動されるaccept
関数です。この関数の最初のパラメーターを使用して、着信ファイルをスパイできます。
そのパラメーターには、MIMEタイプを通知できるtype
などのプロパティがあります。 MIMEタイプがわかったら、CSSを使用して要素の背景画像を変更できます。常に最新のドロップゾーンファイルを対象にするため、要素は常に$('.dropzone .dz-preview.dz-file-preview .dz-image:last')
になります。背景画像を適切なアイコンに変更するだけです。たとえば、PDFでは these のいずれでも機能します。
これを使って:
this.emit("thumbnail", file, "/WebResources/cre_pdf_icon");
または
myDropzone.emit("thumbnail", file, "/WebResources/cre_pdf_icon");
サムネイル画像のサイズを変更することが重要であるため、サイズを変更する行を追加する必要があります。
Dropzone.options.myAwesomeDropzoneUpload = {
accept: function(file, done) {
switch (file.type) {
case 'application/pdf':
this.emit("thumbnail", file, "/static/img/pdf.png");
break;
case 'application/vnd.openxmlformats-officedocument.wordprocessingml.document':
this.emit("thumbnail", file, "/static/img/Word.png");
break;
}
file.previewTemplate.querySelector(".dz-image img").style.width="120px";
done();
}
};
@Gabrielの回答のバリエーションを使用してしまいました
Dropzone.options.myAwesomeDropzone= {
init: function () {
this.on("addedfile", function (data) {
console.log(data);
var ext = data.name.split('.').pop();
if (ext == "pdf") {
$(data.previewElement).find(".dz-image img").attr("src", "/Content/Images/pdf.png");
} else if (ext.indexOf("doc") != -1) {
$(data.previewElement).find(".dz-image img").attr("src", "/Content/Images/Word.png");
} else if (ext.indexOf("xls") != -1) {
$(data.previewElement).find(".dz-image img").attr("src", "/Content/Images/Excel.png");
} else if (ext.indexOf("xlsx") != -1) {
$(data.previewElement).find(".dz-image img").attr("src", "/Content/Images/Excel.png");
}
});
}
};