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

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

Ответ 1

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

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

Ответ 3

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

Ответ 4

Эта функция 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");

Ответ 5

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

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

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

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

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

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

Ответ 6

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

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

Ответ 7

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

Независимо от того, что плавает ваша лодка:)