#javascript #file #html #path
#javascript #файл #HTML #путь
Вопрос:
существует много примеров чтения локальных файлов с использованием html5, но, выбирая из списка файлов, моя проблема в том, что я хочу создать файловый объект вручную, подумайте о том, что у меня есть файл со ссылкой
file:///G:/Users/txt.txt
я хочу, чтобы браузер открыл его ,
я думаю, что для этого нужно файл f=new File('file:///G:/Users/txt.txt');
мой вопрос в том, как создать / инициализировать объект file, используя путь к файлу?!
Комментарии:
1. Я бы не удивился, если бы это было невозможно из-за различий в файловой системе (UNIX против Соглашение Win и т.д.) и безопасность. Я, конечно, не хотел бы, чтобы мой браузер переопределял какой-либо мой файл без моего ведома об этом. 🙂
2. разработка мобильного приложения с использованием html5, попытка сохранить некоторые данные на SDCard и получить их снова
3. Я думаю, вам было бы проще полагаться на localStorage. Смотрите dev.w3.org/html5/webstorage .
4. мои сохраненные данные со временем становятся очень большими, я хочу сохранить их на SD
Ответ №1:
Я использовал приведенный ниже обходной путь, поскольку файл наследует интерфейс 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);
});
Комментарии:
1. Я должен использовать XMLHttpRequest даже для локального пути к файлу?
2. Работает ли это и на Android, хорошо ли работает на iOS, но Android, похоже, это не нравится ….?
Ответ №2:
На самом деле нет способа создать файл без разрешения пользователя. Необходимо будет нажать кнопку или что-то еще. Вам нужно будет создать data:uri для его сохранения. Вы можете найти дополнительную информацию с помощью веб-поиска или изhttp://en.wikipedia.org/wiki/Data_URI_scheme (не полный исходный код, но может показать, что возможно). Это очень ограничено в зависимости от телефона и операционной системы. URI данных ограничены при использовании IE.
Когда он запускается для загрузки, он сохраняется в расположении по умолчанию или указанном пользователем. Вы также можете захотеть изучить вызовы API, зависящие от поставщика / операционной системы, которые могут выполнять то, что вы описываете. Но, возможно, потребуется проверить разрешения до фактического разрешения доступа.