小编典典

使用JavaScript将文本文件保存在服务器上

ajax

是否可以在不使用PHP的情况下使用JavaScript /
jQuery将文本保存到新的文本文件中?我要保存的文本可能包含我不想转义或使用urlencode的HTML实体,JS,HTML,CSS和PHP脚本!

如果只能使用PHP来实现,如何将文本传递给PHP而不进行编码?


阅读 322

收藏
2020-07-26

共1个答案

小编典典

您必须具有服务器端脚本来处理您的请求,但这不能使用javascript完成。

要将没有URIencoding或转义特殊字符的原始数据发送到php并将其保存为新txt文件,您可以使用post方法发送ajax请求,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);
}

编辑:

如下面的Florian所述,由于FormData旧版浏览器不支持XHR后退(因为formdata浏览器兼容),因此不需要XHR后备,因此您可以将XHR变量声明为:

var xhr = new XMLHttpRequest();

另外请注意,这仅适用于支持FormDataIE +10的浏览器。

2020-07-26