Я создаю веб-сайт для передачи файлов и столкнулся с большой проблемой! Я работаю с react.js
express.js
и цифровыми океанскими пространствами. Когда я перетаскиваю файл в зону перетаскивания и нажимаю «Отправить», файл должен быть загружен в цифровое пространство океана, это похоже на amazon s3. Итак, теперь я могу загрузить файл без каких-либо проблем, но было бы гораздо больше, если бы я мог сжать файл при реакции, прежде чем отправить его в цифровой океан через Express. И вот проблема! Я не могу отправить заархивированный файл! Я уже проверил отправку zip-файла почтальоном, и он работает, но когда я пытаюсь отправить его с клиента (реагировать), используя ax ios, ничего не происходит.
Пожалуйста, нужна помощь :( Прошло 3 дня, что Я ищу, как заставить его работать, но никак не могу. Спасибо большое, ребята.
Загрузка. js компонент клиента (реагирует):
export const upload = (form, callback = () => {}) => {
const url = `${apiURL}/upload`;
let files = _.get(form, 'files', []);
let data = new FormData();
const folderName = "upload";
let zip = new JSZip();
let content = zip.folder(folderName);
_.each(files, (file) => {
content.file(file);
})
zip.generateAsync({type:"blob"}).then(function(blob) {
data.append('files', blob);
});
data.append('to', _.get(form, 'to'));
data.append('from', _.get(form, 'from'));
data.append('message', _.get(form, 'message'));
const config = {
onUploadProgress : (event) => {
console.log('UPLOAD EVENT from Upload.js ', event);
return callback({
type : 'onUploadProgress',
payload : event
})
}
}
axios.post(url, data, config).then((response) => {
//upload success
return callback({
type : 'success',
payload : response.data
})
}).catch((err) => {
return callback({
type : 'error',
payload : err
})
});
}