Я использую Dropzone.js для процесса загрузки файлов. Я уже нашел несколько тем здесь, в stackoverflow относительно моей проблемы, но ни одно из этих решений не помогает мне.Dropzone.js - сообщение об успешном завершении после загрузки
В настоящее время пользователь может загружать сразу несколько файлов сразу после загрузки одного файла, существует ссылка «Удалить файл». Это все! Я хочу следующее:
Если пользователь загружает let's say 4 изображения, чем после того, как все эти изображения загружены, должно получиться сообщение об успешном завершении. Сейчас пользователь не понимает, загружены ли эти файлы на 100%. Я плохо разбираюсь в jQuery/Ajax, поэтому я действительно не знаю, как должен выглядеть мой код. Было бы здорово, если бы кто-нибудь мог сказать мне, как мой код должен выглядеть так, чтобы он работал.
Вот моя форма:
print "<div class='col-sm-12'><br /><br />";
print "<form method='post' action='index.php' id='dropzone' class='form-horizontal dropzone'>";
print "<input type='hidden' name='func' value='supportticket'>";
print "<input type='hidden' name='id' value='".$id."'>";
print "<input type='hidden' name='sid' value='".$sid."'>";
print "<input type='hidden' name='attach_images' value='".$attach_images."'>";
print "<div class='form-group'>";
print "<div class='col-sm-8'>";
print "<div class='fallback'>";
print "<input name='file' type='file' multiple='' />";
print "</div>";
print "</div>";
print "</div>";
print "</form>";
print "</div>";
Вот мой сценарий:
<script type="text/javascript">
jQuery(function($){
try {
Dropzone.autoDiscover = false;
var myDropzone = new Dropzone("#dropzone" , {
paramName: "file", // The name that will be used to transfer the file
maxFilesize: 2.0, // MB
addRemoveLinks : true,
dictDefaultMessage :
'<span class="bigger-150 bolder"><i class="ace-icon fa fa-caret-right red"></i> Drop files</span> to upload \
<span class="smaller-80 grey">(or click)</span> <br /> \
<i class="upload-icon ace-icon fa fa-cloud-upload blue fa-3x"></i>',
dictResponseError: 'Error while uploading file!',
//change the previewTemplate to use Bootstrap progress bars
previewTemplate: "<div class=\"col-sm-4\"><div class=\"dz-preview dz-file-preview\">\n <div class=\"dz-details\">\n <div class=\"dz-filename\"><span data-dz-name></span></div>\n <div class=\"dz-size\" data-dz-size></div>\n <img data-dz-thumbnail />\n </div>\n <div class=\"progress progress-small progress-striped active\"><div class=\"progress-bar progress-bar-success\" data-dz-uploadprogress><br /></div></div>\n</div>\n <div class=\"dz-error-message\"><span data-dz-errormessage></span></div>\n</div></div>"
});
$(document).one('ajaxloadstart.page', function(e) {
try {
myDropzone.destroy();
} catch(e) {}
});
} catch(e) {
alert('Dropzone.js does not support older browsers!');
}
});
</script>
ВНИМАНИЕ: Загрузить работает нормально в настоящее время! Все изображения загружаются на мой сервер, и я также написал сценарий, чтобы имя моего файла было сохранено в моей базе данных. Единственное, что мне нужно - это расширить мой скрипт, чтобы получить успешное сообщение, если загрузка была успешной.
Надеюсь, что кто-то может мне помочь!
EDIT: Вот мой текущий код. Загрузка по-прежнему работает нормально, но сообщение об успехе не загружается после загрузки всех файлов.
<script type="text/javascript">
jQuery(function($){
try {
Dropzone.autoDiscover = false;
var errors = false;
var myDropzone = new Dropzone("#dropzone" , {
paramName: "file", // The name that will be used to transfer the file
maxFilesize: 2.0, // MB
error: function(file, errorMessage) {
errors = true;
},
queuecomplete: function() {
if(errors) alert("There were errors!");
else alert("We're done!");
},
addRemoveLinks : true,
dictDefaultMessage :
'<span class="bigger-150 bolder"><i class="ace-icon fa fa-caret-right red"></i> Drop files</span> to upload \
<span class="smaller-80 grey">(or click)</span> <br /> \
<i class="upload-icon ace-icon fa fa-cloud-upload blue fa-3x"></i>',
dictResponseError: 'Error while uploading file!',
//change the previewTemplate to use Bootstrap progress bars
previewTemplate: "<div class=\"col-sm-4\"><div class=\"dz-preview dz-file-preview\">\n <div class=\"dz-details\">\n <div class=\"dz-filename\"><span data-dz-name></span></div>\n <div class=\"dz-size\" data-dz-size></div>\n <img data-dz-thumbnail />\n </div>\n <div class=\"progress progress-small progress-striped active\"><div class=\"progress-bar progress-bar-success\" data-dz-uploadprogress><br /></div></div>\n</div>\n <div class=\"dz-error-message\"><span data-dz-errormessage></span></div>\n<span data-dz-suc>successfull</span></div></div>"
});
$(document).one('ajaxloadstart.page', function(e) {
try {
myDropzone.destroy();
} catch(e) {}
});
} catch(e) {
alert('Dropzone.js does not support older browsers!');
}
});
</script>
Спасибо, Крис
Спасибо за код, но можете ли вы сказать мне, где мне нужно вставить код? Как должен выглядеть мой код при интеграции кода? –
@ChristophC. У вас уже есть несколько параметров/параметров, которые вы устанавливаете при настройке Dropzone в своем коде (например, 'addRemoveLinks' и' dictDefaultMessage'). Это всего лишь два новых параметра для добавления в список. – JustHelping
Я ввел ваш код «error: ...» и ваш код «queuecomplete: ....» под maxFileSize в моем коде и ввел вашу ошибку var = false выше моего var myDropzone, но это не работает!Я не вижу сообщение об ошибке или успехе aywhere. –