是否可以在不使用 PHP 的情况下使用 JavaScript/jQuery 将文本保存到新的文本文件?我要保存的文本可能包含我不想转义或使用 urlencode 的 HTML 实体、JS、HTML、CSS 和 PHP 脚本!
如果只能使用 PHP 来实现,我如何将文本传递给 PHP 而无需对其进行编码?
是否可以在不使用 PHP 的情况下使用 JavaScript/jQuery 将文本保存到新的文本文件?我要保存的文本可能包含我不想转义或使用 urlencode 的 HTML 实体、JS、HTML、CSS 和 PHP 脚本!
如果只能使用 PHP 来实现,我如何将文本传递给 PHP 而无需对其进行编码?
您必须有一个服务器端脚本来处理您的请求,它不能使用 javascript 来完成。
要在没有 URIencoding 或转义特殊字符的情况下将原始数据发送到 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);
}
编辑:
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();
Also please note that this works only for browsers that support FormData
such as IE +10.
仅使用 JavaScript 和 jQuery 等客户端脚本无法将内容保存到网站,但通过在 AJAX POST 请求中提交数据,您可以非常轻松地在服务器端执行另一半。
但是,我不建议将原始内容(例如脚本)如此容易地写入您的主机,因为这很容易被利用。如果您想了解更多关于 AJAX POST 请求的信息,可以阅读 jQuery API 页面:
http://api.jquery.com/jQuery.post/
如果您仍想在主机上保存原始脚本文件,请注意以下几点。如果您要处理这样的文件,您必须非常小心安全!
文件上传(如果 javascript 可以选择文件名,大多数情况下也适用于发送纯文本) http://www.developershome.com/wap/wapUpload/wap_upload.asp?page=security https://www.owasp .org/index.php/Unrestricted_File_Upload