Подтвердить что ты не робот

Сохранение текстового файла на сервере с использованием JavaScript

Можно ли сохранить текст в новый текстовый файл с помощью JavaScript/jQuery без использования PHP? Текст, который я пытаюсь сохранить, может содержать HTML-сущности, JS, HTML, CSS и PHP-скрипты, которые я не хочу скрывать или использовать urlencode!

Если это возможно только с помощью PHP, как передать текст на PHP без его кодирования?

4b9b3361

Ответ 1

Для обработки вашего запроса у вас должен быть сервер script, он не может быть выполнен с использованием javascript.

Чтобы отправить необработанные данные без URI-кодирования или экранирования специальных символов в php и сохранить его в качестве нового файла txt, вы можете отправить запрос ajax с помощью метода post и FormData, например:

JS:

var data = new FormData();
data.append("data" , "the_text_you_want_to_save");
var xhr = (window.XMLHttpRequest) ? new XMLHttpRequest() : new activeXObject("Microsoft.XMLHTTP");
xhr.open( 'post', '/path/to/php', true );
xhr.send(data);

PHP:

if(!empty($_POST['data'])){
$data = $_POST['data'];
$fname = mktime() . ".txt";//generates random name

$file = fopen("upload/" .$fname, 'w');//creates new file
fwrite($file, $data);
fclose($file);
}

Edit:

Как упоминает Флориан, резерв XHR не требуется, поскольку FormData не поддерживается в старых браузерах (formdata browser compatibiltiy), поэтому вы можете объявить переменную XHR как:

var xhr = new XMLHttpRequest();

Также обратите внимание, что это работает только для браузеров, поддерживающих FormData, таких как IE +10.

Ответ 2

Невозможно сохранить контент на веб-сайте, используя только скрипты на стороне клиента, такие как JavaScript и jQuery, но, отправив данные в запрос POST AJAX, вы можете легко выполнить другую половину на стороне сервера.

Однако я бы не рекомендовал иметь необработанный контент, такой как скрипты, которые легко записываются на ваш хостинг, поскольку это может быть легко использовано. Если вы хотите узнать больше о запросах AJAX POST, вы можете прочитать страницу API jQuery:

http://api.jquery.com/jQuery.post/

И вот некоторые вещи, о которых вам следует знать, если вы все еще хотите сохранить исходные файлы script на своем хостинге. Вы должны быть очень осторожны с безопасностью, если работаете с такими файлами!

Загрузка файлов (большинство из них применяется при отправке обычного текста, если javascript может выбрать имя файла) http://www.developershome.com/wap/wapUpload/wap_upload.asp?page=security https://www.owasp.org/index.php/Unrestricted_File_Upload