Я использую средство чтения файлов HTML 5, чтобы прочитать загруженный файл и сохранить его в базе данных как BLOB. И получить эти данные BLOB и предоставить ссылку для загрузки в моем приложении.
Если я загружаю PDF-файл и загружаю его, он работает на моем локальном компьютере. Но тот же код не работает на сервере, загруженный PDF-файл пуст
Код в угловом формате для чтения файла и отправки данных в node.js
const reader = new FileReader();
reader.onloadend = (e) => {
const content = reader.result;
var dotSplit = file.name.split(".");
const fileObject = { name: file.name, lastModified: file.lastModified, size: file.size, type: file.type, lastModifiedDate: file.lastModifiedDate, mimetype: dotSplit[dotSplit.length - 1] };
files.push({ file: fileObject, content: content }); //which will be posted to node js using http.post method
};
reader.readAsBinaryString(file);
Код в node.js для сохраненияданные
const content = atts.content; //content sent from Angular
var fileObj = { ParamType: 1, DataType: "BLOB", "Data": content };
var qry = "INSERT...";
var params = [];
params.push(resReqId, fileObj, atts.file.name, atts.file.mimetype, 1, '', 'REQ');
Код n Угловой для преобразования данных BLOB и загрузки
var blob = new Blob([this.str2ab(response.result.content)], { type: response.result.type + ';charset=UTF-8;' });
var link = document.createElement('a');
link.href = window.URL.createObjectURL(blob);
link.download = response.result.filename;
document.body.appendChild(link);
link.click();
result.next(response);
str2ab(str) {
const buf = new ArrayBuffer(str.length);
const bufView = new Uint8Array(buf);
for (let i = 0; i < str.length; i++) {
bufView[i] = str.charCodeAt(i);
}
return buf;
}
В базу данных PDF-файл сохраняется как BLOB (73630) 255044462D312E330A25C4E5 .... если я попытаюсь вместный. В угловых файлах размер показывает 72 КБ.
Тот же файл PDF, сохраненный как BLOB (107262) 255044462D312E330A25C384 ... если я попробую на сервере. В угловых файлах размер показывает 105 КБ.
Похоже, файл поврежден при сохранении в базе данных. Что может быть причиной этого?