Используете API собственной файловой системы для сохранения файла в определенном месте без вмешательства пользователя?
У меня есть собственная система, которая должна создавать текстовые файлы, чтобы печатать кассовые чеки при появлении нового заказа. Мне нужно, чтобы эти файлы были сохранены локально на компьютере в определенном месте, но есть ли способ сохранить файл в этом месте, не предлагая пользователю выбрать местоположение файла? Возможно ли, если вы создадите свой собственный класс FileSystemFileHandle, а затем передадите его как дескриптор?
$('.save').click(function() {
saveToFile('from website');
});
async function saveToFile(content) {
const opts = {
type: 'save-file',
accepts: [
{
description: 'Text File',
extension: ['txt'],
mimeType: ['text/plain'],
}
]
}
const handle = await window.chooseFileSystemEntries(opts); // don't to that
// create custom FileSystemFileHandle and point to the file location?
const handle = FileSystemFileHandle;
const writable = await handle.createWritable();
await writable.write(content);
await writable.close();
}
1 ответ
Это невозможно сделать с помощью API доступа к файловой системе, но, по иронии судьбы, автоматически запускаемые загрузки по-прежнему существуют в
<a download>
подход.
const a = document.createElement('a');
// undefined
a.download = 'example.txt';
// "example.txt"
a.href = URL.createObjectURL(new Blob(['yolo'], {type : 'text/plain'}));
// "blob:https://example.com/8d494f54-499d-4f32-bdb4-ff047e8c60af"
a.click();
// undefined
// Downloads a file `example.txt` to your Downloads folder