Javascript: сохранение данных JSON в виде файла на жестком диске сервера / пользователя. - PullRequest
0 голосов
/ 02 июня 2010

Я разработал приложение, которое позволяет пользователю заполнять текстовые поля информацией.Я хочу, чтобы они могли нажимать кнопку, которая создаст файл с данными (очень длинный массив с информацией о том, что они набрали и куда они должны идти), чтобы они могли перезагрузить данные позже.У меня сейчас нет сервера, и я отправляю это приложение в виде отдельного html-приложения своим друзьям для их использования до тех пор, пока я не получу hose / mySql / и т. Д. Есть ли способ, когда они нажимают на кнопку, это будетданные (сохраненные в виде массива, save_data), поместить их в файл и начать процесс загрузки из своего веб-браузера?А потом, какую технологию мне нужно изучить, чтобы сохранить это в онлайн-аккаунтах?

Ответы [ 2 ]

1 голос
/ 03 июня 2010

Это возможно, но только если вы заставляете своих пользователей использовать Windows и Microsoft Internet Explorer. Вы можете отправить html-файл в виде hta-файла, который может записывать и считывать данные с жесткого диска. чек http://msdn.microsoft.com/en-us/library/ms536496%28VS.85%29.aspx для получения дополнительной информации.
Hta-файл - это, по сути, локальный html-файл с некоторыми дополнительными тегами в заголовке, который запускается (интерпретируется) локально без ограничений безопасности, как любой exe-файл Я не знаю, как показать полный HTML-код здесь (уценка не для меня), так что если вы хотите пример:
1 - создать файл test.hta со стандартными тегами html, head, body и script
2 - бирка внутри головы, вставка

    <HTA:APPLICATION 
    ID="oMyApp" 
    APPLICATIONNAME="test"  
    BORDER="yes" 
    CAPTION="yes" 
    SHOWINTASKBAR="yes"
    SINGLEINSTANCE="yes" 
    SYSMENU="yes">
 </HTA:APPLICATION>

3 - внутри вкладки тела положить кнопку с помощью onclick = "writeText ();"
4 - внутри скрипта вставить тег

    function writeText(){
        try{
            var fso = new ActiveXObject("Scripting.FileSystemObject"); 
            var fileObject = fso.OpenTextFile("C:\\testhta.txt", 8, true,0);        
            fileObject.WriteLine('text file written');
            fileObject.close();
        }catch(ex){
            alert(ex);
        }
    }

5 - сохраните его, дважды щелкните по нему, нажмите на кнопку, и вы получите хороший файл "C: \ testhta.txt" с текстовым файлом, записанным в нем.

1 голос
/ 02 июня 2010

Если у вас нет сервера, то нет ... нет способа инициировать загрузку / сохранение файла на основе динамически сгенерированных данных с помощью JavaScript

...