2016-05-25 4 views
2

Я работаю над учебником для HTML5 FileSystem-API. В принципе, я хотел бы написать файл на свою машину. Я использую simpleHTTPServer python для обслуживания веб-сайта. Когда я загружаю веб-страницу, консоль не вызывает ошибку, и я получаю сообщение о том, что запись прошла успешно. Но я не могу найти файл на моей машине. Вот мой код:HTML5 fileWriter.write не записывается в локальный файл

function onInitFs(fs) { 

    fs.root.getFile('zz11zzlog.txt', {create: true}, function(fileEntry) { 

    // Create a FileWriter object for our FileEntry (log.txt). 
    fileEntry.createWriter(function(fileWriter) { 

     fileWriter.onwriteend = function(e) { 
     console.log('Write completed.'); 
     }; 

     fileWriter.onerror = function(e) { 
     console.log('Write failed: ' + e.toString()); 
     }; 

     // Create a new Blob and write it to log.txt. 
     var blob = new Blob(['Lorem Ipsum'], {type: 'text/plain'}); 

     fileWriter.write(blob); 

    }, errorHandler); 

    }, errorHandler); 

} 

function errorHandler(e) { 
    var msg = ''; 

    switch (e.code) { 
    case FileError.QUOTA_EXCEEDED_ERR: 
     msg = 'QUOTA_EXCEEDED_ERR'; 
     break; 
    case FileError.NOT_FOUND_ERR: 
     msg = 'NOT_FOUND_ERR'; 
     break; 
    case FileError.SECURITY_ERR: 
     msg = 'SECURITY_ERR'; 
     break; 
    case FileError.INVALID_MODIFICATION_ERR: 
     msg = 'INVALID_MODIFICATION_ERR'; 
     break; 
    case FileError.INVALID_STATE_ERR: 
     msg = 'INVALID_STATE_ERR'; 
     break; 
    default: 
     msg = 'Unknown Error'; 
     break; 
    }; 

    console.log('Error: ' + msg); 
} 
window.webkitRequestFileSystem(window.TEMPORARY, 1024*1024, onInitFs, errorHandler); 

ответ

0

Но я не могу найти файл в любом месте на моей машине.

Если запись прошла успешно, то файл будет записан на локальную файловую систему на хроме или хром конфигурационной директории в Default -> каталога File System.

См How to Write in file (user directory) using JavaScript?

+0

В Windows, если я иду в хромированной каталог файловой системы я вижу кучу папок (с именем 000 , 001, 002 ... и Origins), но ни один из них не имеет указанного файла txt. Поиск на жестком диске также ничего не дает – gpanterov

+0

@gpanterov _ «если я перейду в мою файловую систему chrome, я вижу кучу папок (имена 000, 001, 002 ... и Origins)» _ Да, имя файла предоставленный в '.getFile()', не совпадает с созданным файлом в каталоге 'File System'. Хотя вы можете получить файл по имени файла, используя '.getFile (" fileName ", {})' с пустым объектом в качестве второго параметра. Открыли ли вы файлы в папках '000',' 001', '002'? Есть ли текст «Lorem Ipsum»? – guest271314

+0

Получил! Я смог прочитать файл через браузер, чтобы он был там. Я предполагал, что он сохранит его в папке с моими индексными файлами. – gpanterov

0

Зов это две строки для загрузки файла

window.requestFileSystem(window.TEMPORARY, fileSize, function(filesystem){ 
 
\t \t \t \t \t \t \t \t \t setTimeout(function() { 
 
\t \t \t \t \t \t \t \t \t \t downloadFs(filesystem,fileName); 
 
\t \t \t \t \t \t \t \t \t }, time); 
 
\t \t \t \t \t \t \t }, errorHandler); 
 

 
function downloadFs(fs,fileName) { 
 
\t \t \t fs.root.getFile(fileName, {create: false}, function(fileEntry) { 
 
\t \t \t   console.log("filesystem:"+fileEntry.toURL()) ; 
 
\t \t \t \t \t window.location.href = fileEntry.toURL(); 
 
\t \t \t }, errorHandler); \t 
 
\t }

Смежные вопросы