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



есть ли способ получить jQuery, чтобы получить информацию и из файла? Возможно ли это? Как?

1426   7  

7 ответов:

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

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

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

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

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

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

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

это раньше работало со всеми браузерами, но теперь работает только с 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");

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

чтобы настроить это, вы бы:

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

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

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

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

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

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

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

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

Comments

    Ничего не найдено.