Чтение / запись в файл с использованием jQuery - PullRequest
61 голосов
/ 24 февраля 2009

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

Ответы [ 7 ]

74 голосов
/ 24 февраля 2009

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

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

37 голосов
/ 23 ноября 2009

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

Техника описана ниже

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

16 голосов
/ 24 февраля 2009

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

11 голосов
/ 20 июля 2012

Использовать execCommand('SaveAs', false, filename); функциональность javascript

Редактировать: больше не работает. Эта функция Javascript использовалась во всех браузерах, но теперь только в IE, из соображений безопасности браузера. Он представил диалоговое окно «Сохранить как» пользователю, который запускает эту функцию через браузер, пользователь нажимает кнопку «ОК» и файл сохраняется с помощью javascript на стороне сервера. Теперь этот кодекс является редким предметом коллекционирования антиквариата.

// 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 голосов
/ 24 февраля 2009

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

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

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

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

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

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

5 голосов
/ 24 февраля 2009

Cookies - ваш лучший выбор. Ищите плагин jquery cookie.

Файлы cookie предназначены для такой ситуации - вы хотите хранить некоторую информацию об этом клиенте на стороне клиента. Просто имейте в виду, что куки-файлы передаются взад-вперед при каждом веб-запросе, поэтому вы не можете хранить там большие объемы данных. Но просто простой ответ на вопрос должен подойти.

1 голос
/ 24 февраля 2009

Если вы хотите сделать это без какой-либо обработки на стороне сервера внутри страницы, возможно, будет целесообразным перенести текстовое значение в скрытое поле (используя PHP). Затем вы можете использовать jQuery для обработки скрытого значения поля.

Все, что плывет на твоей лодке:)

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