Я создаю сервер с Express для пользователя, чтобы загружать изображения, затем сервер обрабатывает массив изображений и отправляет zip с помощью res.download.
Сначала я пытаюсь опубликовать HTML-форму с помощью функции отправки, она можетработа.
Но я хочу, чтобы отображал изображение при обработке данных в браузере , поэтому я использую BlockUI.
И перейдите на с помощью ajax отправьте форму , когда она будет успешно unblokUI , загрузите файл , затем перейдите на другую страницу.
Теперь сервер также получает ajax и отправляет ответ, но не загружает файл.
У кого-нибудь есть идеи?Я буду очень признателен!
HTML
<form id="form" action="url" method="post" enctype="multipart/form-data">
<h2>upload</h2>
<div>
<label>User:</label>
<input type="text" id="user" name="user" accept="text" required="required">
</div>
<input id="fileUpload" type="file" name="file" accept="image/*" multiple="" required="required">
<input type="submit" value="submit" id="submit">
</form>
JavaScript
<script>
$(document).ready(function(){
$("#form").submit(function(e) {
e.preventDefault();
$.blockUI({ message: '<img style="width:50%" src="img_path' });
var form_data = new FormData($('form')[0]);
$.ajax({
type: 'POST',
url: 'url',
data: form_data,
processData: false,
contentType: false,
success: function() {
$.unblockUI();
location.replace("url");
}
});
Узел js
app.post('router', upload.array('file', 30),function(req, res) {
compressing.zip.compressDir(myfile_path).then(() => {
res.download(myfile)
}
})