как создать / инициализировать объект файла, используя путь к файлу html5 - PullRequest
15 голосов
/ 09 мая 2011

Есть много примеров чтения локальных файлов с использованием html5, но при выборе из списка файлов моя проблема заключается в том, что я хочу создать объект файла вручную, подумайте о том, что у меня есть файл со ссылкой

file:///G:/Users/txt.txt

я хочу, чтобы браузер открыл его,

Я думаю, что это должно Файл f=new File('file:///G:/Users/txt.txt');

У меня вопрос, как создать / инициализировать объект файла, используя путь к файлу ?!

Ответы [ 2 ]

29 голосов
/ 17 июня 2015

Я использовал обходной путь ниже, так как 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);
}); 
2 голосов
/ 24 июля 2012

Там действительно нет способа создать файл без разрешения пользователя. Кнопку или что-то нужно будет нажать. Вам нужно будет создать данные: uri, чтобы сохранить их. Вы можете найти больше информации, используя веб-поиск или проверяя http://en.wikipedia.org/wiki/Data_URI_scheme (не полный источник, но может показать, что возможно). Это очень ограничено в зависимости от телефона и ОС. URI данных ограничены при использовании IE.

Когда он запускается для загрузки, он сохраняет местоположение по умолчанию или указанное пользователем. Возможно, вы также захотите изучить API-вызовы конкретных поставщиков / ОС, которые можно выполнять так, как вы описываете. Но может потребоваться проверка разрешений до фактического разрешения доступа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...