Как создать/инициализировать файловый объект, используя путь к файлу html5
есть много примеров чтения локальных файлов с использованием html5, но, выбрав из списка файлов, моя проблема в том, что я хочу создать файл файл вручную, подумайте, что у меня есть файл со ссылкой
file:///G:/Users/txt.txt
Я хочу, чтобы браузер открыл его,
Я думаю, что он должен иметь файл f=new File('file:///G:/Users/txt.txt');
Мой вопрос в том, как создать/инициализировать файл-объект, используя путь к файлу?!
Ответы
Ответ 1
Невозможно создать файл без разрешения пользователя. Необходимо нажать кнопку или что-то еще. Вам нужно будет создать данные: uri, чтобы сохранить их. Вы можете найти дополнительную информацию с помощью веб-поиска или проверить http://en.wikipedia.org/wiki/Data_URI_scheme (не полный источник, но можете показать, что возможно). Это очень ограничено в зависимости от телефона и ОС. URI данных ограничены при использовании IE.
Когда он запускается для загрузки, он сохраняет его по умолчанию или указанному пользователю. Вы также можете ознакомиться с API-интерфейсами, зависящими от поставщика/ОС, которые могут выполнять, как вы описываете. Но, возможно, потребуется проверить разрешения до фактического разрешения доступа.
Ответ 2
Я использовал ниже обходной путь, так как File наследует интерфейс blob.....
var getFileBlob = function (url, cb) {
var xhr = new XMLHttpRequest();
xhr.open("GET", url);
xhr.responseType = "blob";
xhr.addEventListener('load', function() {
cb(xhr.response);
});
xhr.send();
};
var blobToFile = function (blob, name) {
blob.lastModifiedDate = new Date();
blob.name = name;
return blob;
};
var getFileObject = function(filePathOrUrl, cb) {
getFileBlob(filePathOrUrl, function (blob) {
cb(blobToFile(blob, 'test.jpg'));
});
};
getFileObject('img/test.jpg', function (fileObject) {
console.log(fileObject);
});