2015-03-25 6 views
1

Мне нужна помощь для редактирования файла txt на стороне клиента, я не могу найти хороший метод. Мне нужно обновить данные автоматически, без подтверждения, например:Редактировать txt файл с javascript или html5

<button onclick="updatefile()">Update</button> 
    <script> 
     functiom updatefile(){ 
     var file = "d:\test.txt"   
     var data = //here any function for load all data from file 
     ... 
     ... 
     data .= " new data to add"; 

     //here any function for save data in test.txt 
     ..... 
     } 
</script> 

Пожалуйста, помогите мне.

+2

Вы можете прочитать локальный файл [File Web API] (https://developer.mozilla.org/en-US/docs/Web/API/File), но нет ва y для автоматического сохранения обратно в файл из браузера (по соображениям безопасности). – dave

ответ

0

Вы не можете сделать это таким образом, используя JS. То, что вы можете сделать, это загрузить его на клиент, без вмешательства сервера, используя data urls.

Установка имени указанного загруженного файла не является кросс браузерный, к сожалению ...

HTML

<textarea id="text" placeholder="Type something here and click save"></textarea> 
<br> 
<a id="save" href="">Save</a> 

Javascript

// This defines the data type of our data. application/octet-stream 
// makes the browser download the data. Other properties can be added 
// while separated by semicolons. After the coma (,) follows the data 
var prefix = 'data:application/octet-stream;charset=utf-8;base64,'; 
$('#text').on('keyup', function(){ 
    if($(this).val()){ 
    // Set the URL by appending the base64 form of your text. Keep newlines in mind 
    $('#save').attr('href', prefix + btoa($(this).val().replace(/\n/g, '\r\n'))); 
    // For browsers that support it, you can even set the filename of the 
    // generated 'download' 
    $('#save').attr('download', 'text.txt'); 
    }else{ 
    $('#save').removeAttr('href'); 
    $('#save').removeAttr('download'); 
    } 
}); 
+0

возможно выбрать настраиваемый каталог для сохранения файла ?, или всегда файл хранится в каталоге google chrome. – marjes

+0

Насколько я знаю, нет никакого способа сделать это. Это зависит от браузера. Если ваше приложение является веб-приложением, вы можете временно хранить текст в локальном хранилище, но вам придется пройти загрузку, чтобы получить файл. – Loupax

+0

Если ваше приложение представляет собой упакованное приложение (например, расширение chrome или автономное приложение Chrome), вы можете сохранить файлы в файловой системе sandbox, но я не использовал их лично. Связанный вопрос: http://stackoverflow.com/questions/21213397/where-is-the-file-sandbox-for-a-chrome-app – Loupax

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