使用 JavaScript 在服务器上保存文本文件 [英] Saving a text file on server using JavaScript

查看:52
本文介绍了使用 JavaScript 在服务器上保存文本文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

Is it possible to save text to a new text file using JavaScript/jQuery without using PHP? The text I'm trying to save may contain HTML entities, JS, HTML, CSS and PHP scripts that I don't want to escape or use urlencode!

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

If it's only can be achieved using PHP how can I pass the text to PHP without encoding it?

推荐答案

你必须有一个服务器端脚本来处理你的请求,它不能使用 javascript 来完成.

You must have a server-side script to handle your request, it can't be done using javascript.

要在没有 URIencoding 或转义特殊字符的情况下将原始数据发送到 php 并将其保存为新的 txt 文件,您可以使用 post 方法和 FormData 发送 ajax 请求 喜欢:

To send raw data without URIencoding or escaping special characters to the php and save it as new txt file you can send ajax request using post method and FormData like:

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,XHR 回退不是必需的,因为 FormData 在旧浏览器中不受支持 (formdata 浏览器兼容性),因此您可以将 XHR 变量声明为:

As Florian mentioned below, the XHR fallback is not required since FormData is not supported in older browsers (formdata browser compatibiltiy), so you can declare XHR variable as:

var xhr = new XMLHttpRequest();

另外请注意,这仅适用于支持 FormData 的浏览器,例如 IE +10.

Also please note that this works only for browsers that support FormData such as IE +10.

这篇关于使用 JavaScript 在服务器上保存文本文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆