У меня есть документ в виде base64string, а затем я сгенерирую файл из него и предоставлю ссылку для скачивания. Это все работает правильно, однако дает файлу случайное число, а не имя, которое я хочу.
Сначала я создаю новый файл примерно так:
export const urlToFile = (url, filename, type) =>
fetch(url)
.then(res => res.arrayBuffer())
.then(
buffer =>
new File([buffer], filename, {
type
})
);
export const getExportFileUrl = resp =>
urlToFile(
`data:${docType};base64,${resp}`,
`Document_Filename`,
`${docType}`
).then(file => file);
Затем я комбинирую Filereader и URL API для создания ссылки на скачивание, например, так:
// This is returned from the File API.
const exportedFile = {
name: "Document_Filename"
lastModified: 1587577801489
lastModifiedDate: '....'
webkitRelativePath: ""
size: 8243
type: "application/vnd.openxmlformats-officedocument.wordprocessingml.document"
}
handleDownloadClick = () => {
const fileReader = new FileReader();
fileReader.onload = () => {
const downloadUrl = URL.createObjectURL(exportedFile);
window.location = downloadUrl;
};
fileReader.readAsText(exportedFile);
};
Загруженное имя файла выглядит примерно так:
f8477d6a-bea9-4a83-843f-26e381249b71.docx
Как установить собственное имя файла? возможно с приведенной выше реализацией?