Всем привет. Я юзаю Express, Node, React.
У меня на клиенте есть кнопка Export. Я ее нажимаю и отправляю на сервер объект. Затем из этого объекта делаю xml и архивирую их. вот код
const JSZip = require("jszip");
app.post('/export', function (req, res) {
var zip = new JSZip();
zip.file("file1.xml", convert.json2xml(req.body.obj1, { compact: true, ignoreComment: true, spaces: 4 }));
zip.file("file2.xml", convert.json2xml(req.body.obj2, { compact: true, ignoreComment: true, spaces: 4 }));
zip.generateNodeStream({
type: 'nodebuffer',
streamFiles: true,
compression: "DEFLATE",
compressionOptions: {
level: 9
}
})
.pipe(fs.createWriteStream('xdd.zip')) // на этой стадии на сервере создается валидный архив. все работает хорошо. но мне надо сохранить его не на сервере, а в выбранном мной в браузере месте.
.on('finish', function (result) { // result == undefined
res.download(path.join(__dirname, 'xd.sflow'))
// res.end(file);
});
});
на стороне клиента
import { saveAs } from 'file-saver';
return axios.post(`${apiUrl}` + 'export', data)
.then(response => {
var blob = new Blob([response.data], {type: "text/plain;charset=utf-8"});
saveAs(blob, "test.zip");
dispatch(exportFlowSuccess(response.data))
})
да. после того как на сервере файлы заархивируется, и клиент получит ответ. браузер спрашивает куда сохранить файл. я выбираю место. сохраняю. файл сохраняется в нужное мне место. Но!
но, файл уже не валидный. он не такой же как сохраненный ранее на сервере.
понятно что я на клиент что-то не то передаю, но что надо передавать, я так и не понимаю
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Вообще не понимаю, в чём ошибка, но cookie вроде как остаётся совершенно пустым
Почему после увеличения уменьшение зума не корректно пересчитаваются координатыЕсли изначально не зумить, то точки масштабируются корректно,...
При выборе поисковых подсказок в input не срабатывает функция oninput, onchange
Ситуация следующая: при тесте сайта на iPhone 6, после загрузки всей страницы фон становится белым, а должен быть градиентПроисходит это через...