だから、私はここで解決策に従ってみました:
しかし、私がオプションを提供するときはいつでも:
Dropzone.autoDiscover = false;
ドロップゾーンは、デフォルトのドラッグアンドドロップの外観の表示から、「参照」ボタンのあるテキストのみになります。
これが私のコードです(dropzoneはヘッダーに含まれています):
<script type="text/javascript">
$(document).ready(function () {
Dropzone.autoDiscover = false;
$("#uploadme").dropzone({
maxFilesize: 5000,
dictDefaultMessage: "Drop your file here to upload (multiple files require being zipped)",
uploadMultiple: false,
addRemoveLinks: true
});
});
</script>
<h5>Test space for FTP</h5>
<asp:Label ID="lblError" runat="server"></asp:Label>
<div class="mainContent">
<form runat="server" method="post" enctype="multipart/form-data"
class="dropzone"
id="ftpUpload">
<div class="fallback" id="uploadme">
<input type="file" name="file" multiple />
<input type="submit" value="Upload" />
</div>
</form>
</div>
したがって、問題は、デフォルトの外観を損なうことなく、ドロップゾーンのオプションを指定するにはどうすればよいですか?
私はそれを自分で理解しました。私はASP.NETWebフォームにかなり慣れていないので、Javascriptがクライアント側であるため、サーバー側とクライアント側で異なる要素IDを参照することを忘れました。ソースを表示したところ、フォームのIDが「aspnetForm」であることがわかったため、オプションコードを次のように変更しました。
Dropzone.options.aspnetForm = {
uploadMultiple: false,
maxFiles: 1,
maxFilesize: 5000,
等.
今それは動作します!
頑張って
@{
}
<div id="dropzone">
<form action="/Photo/Upload" class="dropzone" id="uploader" enctype="multipart/form-data"></form>
</div>
@section Styles{
<link rel="stylesheet" type="text/css" href="~/lib/dropzone/dist/basic.css" />
<link rel="stylesheet" type="text/css" href="~/lib/dropzone/dist/dropzone.css" />
}
@section Scripts{
<script src="~/lib/dropzone/dist/dropzone.js"></script>
<script>
Dropzone.autoDiscover = false;
window.onload = function () {
var dropzoneOptions = {
dictDefaultMessage: 'Drop Here!',
paramName: "file",
maxFilesize: 2, // MB
addRemoveLinks: true,
init: function () {
this.on("success", function (file) {
console.log("success > " + file.name);
});
}
};
var uploader = document.querySelector('#uploader');
var newDropzone = new Dropzone(uploader, dropzoneOptions);
console.log("Loaded");
};
</script>
}
4つのオプション:
.dropzone
_を使用しないでください。これにより、自動検出でクラスが取得されなくなります。デフォルトのCSSを使用したい場合、それはあなたを混乱させるでしょうDropzone.autoDiscover = false;
_を使用するdocument.querySelector(formname).dropzone.options
Dropzone.instances[0].options
_のインデックスからアクセスできます。後者の手順を使用する場合(サイトで推奨されているように)、要素のURLなどのオプションを設定し、次の方法でオプションをマージすることもできます。
_let dz = document.querySelector(formname).dropzone
dz.options = { ...dz.options, ...{ myopts } }
_