Чтение / запись в файл с помощью jQuery

Есть ли способ получить jQuery для получения информации в файл и из него? Является ли это возможным? Как?

jquery,file,

59

Ответов: 7


72 принят

Нет, JavaScript не имеет доступа к написанию файлов, так как это, по меньшей мере, представляет собой огромный риск для безопасности. Если вы хотите получить / хранить информацию на стороне сервера, вы можете, конечно, сделать вызов Ajax для PHP / ASP / Python / и т. Д. скрипт, который может затем получить / сохранить данные на сервере. Если вы хотите хранить данные на клиентской машине, это невозможно с помощью JavaScript. Я подозреваю, что Flash / Java может быть в состоянии, но я не уверен.

Если вы пытаетесь хранить небольшой объем информации в течение ненадежного периода времени для конкретного пользователя, я думаю, что вам нужен API веб-хранилища или файлы cookie. Я не уверен в вашем вопросе, что вы пытаетесь выполнить.


36 ов

Да, это возможно.

Методика описана ниже

http://jquery.tiddlywiki.org/twFile.html


15

как HTML5, так и Google Gears добавляют возможности локального хранилища, в основном, встроенным API-интерфейсом SQLite.


10

Эта функция Javascript представляет диалоговое окно «Сохранить как» для пользователя, который запускает эту функцию через свой браузер. Пользователь нажимает OK, и файл сохраняется на стороне сервера.

Это используется для работы со всеми браузерами, но теперь работает только с IE. Следующий код представляет собой угрозу безопасности, если javascript может сохранять данные на стороне сервера, хакер может использовать свои серверы. Firefox и Chrome подключили отверстие, но IE еще не сделал этого.

// content is the data (a string) you'll write to file.
// filename is a string filename to write to on server side.
// This function uses iFrame as a buffer, it fills it up with your content
// and prompts the user to save it out.
function save_content_to_file(content, filename){
    var dlg = false;
    with(document){
     ir=createElement('iframe');
     ir.id='ifr';
     ir.location='about.blank';
     ir.style.display='none';
     body.appendChild(ir);
      with(getElementById('ifr').contentWindow.document){
           open("text/plain", "replace");
           charset = "utf-8";
           write(content);
           close();
           document.charset = "utf-8";
           dlg = execCommand('SaveAs', false, filename);
       }
       body.removeChild(ir);
     }
    return dlg;
}

Вызовите функцию следующим образом:

msg =  "I am the president of tautology club.";
save_content_to_file(msg, "C:\test");

9

Вам нужно будет обрабатывать доступ к файлам через веб-язык программирования, например PHP или ASP.net.

Чтобы настроить это, вы должны:

  • Создайте скрипт, который обрабатывает чтение и запись файлов. Это должно быть видно в браузере.

  • Отправьте jQuery ajax запросы на этот скрипт, который либо записывает данные, либо читает данные. Вам нужно будет передать всю вашу информацию для чтения / записи через параметры запроса. Об этом можно узнать в документации jQuery ajax.

Убедитесь, что вы дезинфицируете данные, которые вы храните, поскольку это потенциально может представлять угрозу безопасности. Однако это действительно просто стандартное хранилище данных с плоскими файлами, и это не обязательно так необычно.

Как отметил Паоло, нет возможности напрямую читать / писать в файл через jQuery или любой другой тип javascript.

JQuery, файл,
Похожие вопросы