使用 XMLHttpRequest 在 JS 中写入文件
Write to file in JS using XMLHttpRequest?
我想出了如何使用XMLHttpRequest API将服务器上的本地.TXT文件读取到JS中,但是对于我的一生,我无法让它写入文件。 是否有可能或仅用于读取文件?
我的代码可以读入工作正常:
var fReader = new XMLHttpRequest();
fReader.onreadystatechange=function() {
if(fReader.readyState==4 && fReader.status==200) {
parseText(fReader.responseText);//Processes the file.
}}
fReader.open("GET",fFileLoc,true);
fReader.send();
我目前正在使用 PHP 写入文件,但它远非理想。 我真的很想让我们JS来做。 有什么想法吗? 有没有另一种方法可以做到这一点? PHP是唯一的方法吗?
提前感谢,
-戴夫
编辑:@rjmunro +其他:我发现使用PHP是解决这个问题的更好方法... 我修改后的代码如下。 (欢迎C&C)。
.JS:
var fReader = XMLHttpRequest();
//var params = "MODE=GET&File=Data.txt";//To read
//var params = "MODE=POST&File=Data.txt&Message=" + myMessage;//To write
fReader.onreadystatechange=function() {
if(fReader.readyState==4 && fReader.status==200) {
//Not really any response text if writing...
parseText(JSON.parse(fReader.responseText).GET);
}
}
fReader.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
fReader.setRequestHeader("Content-length", params.length);
fReader.setRequestHeader("Connection", "close");
fReader.send(params);
.PHP
$MODE = $_POST['MODE'];
switch($MODE) {
case('GET'):
#Read in file and process, then return output.
$return['GET'] = file($_POST['File']);
break;
case('POST'):
if(file_exists($_POST['File'])){
$file = fopen($_POST['File'],"a");
$data = $_POST["Message"];
fwrite($file,$data);
fclose($file);
}
#$return['POST'] = "some message?";
break;
}
echo json_encode($return);
我唯一不是 100% 使用这个解决方案的是为什么我必须设置请求标头?Chrome实际上似乎不喜欢这样... 我从另一个帖子中提取了代码。
XMLHttpRequest 允许您发出 HTTP 请求。
如果要使用它写入文件,则 HTTP 服务器必须通过写入文件来响应请求。
您可以使用 PUT 谓词来执行此操作(请注意,您必须配置 HTTP 服务器以允许这样做,默认情况下,没有 HTTP 服务器允许任意用户将文件写入服务器的磁盘)。
您还可以使用 POST 或其他请求类型传递数据。
PHP是唯一的方法吗?
你可以在服务器上使用任何你喜欢的编程语言(取决于服务器支持的内容,例如,如果你想使用C#,那么你几乎肯定想要一个带有IIS和 ASP.NET 的Windows服务器)。如果你想使用JavaScript,那么有很多选择,其中Node.js比目前的其他选项更受欢迎。
你可以配置apache接受PUT请求,然后使用XMLHttpRequest发送一个请求(我会用jQuery.ajax()
来抽象它)。
不过,最好让PHP(或其他服务器端语言)为您处理它,因为仅使用Apache很难控制身份验证。
- 从文本文件js中读取列表
- 当我用ctrl+p搜索时,为什么要在谷歌chrome上使用inspect来调试缺少显示文件js
- 获取用于外部JavaScript文件(.js)的代码提示
- 如何将Javascript文件(.js文件)放在web服务器中
- 如何将 JavaScript 文件(.js 文件)添加到 C# 项目并从 C# 代码调用 JavaScript 方法
- 在 Node 中包含 javascript 文件.js无需 require('.') ing
- 如何使用jquery显示多个文件.多文件.js
- 使用 PDF 打开 PDF 文件.js而不将文件作为查询字符串传递
- 转换颜色十六进制值以用于三个 JSON 文件.js
- 如何使用 jQuery 选择多个文件.多文件.js插件?使用单个关闭按钮一次选择多个文件
- 如何在 Gulp 任务中间添加 CSS 文件.js
- 如何从Dropzone上传和删除文件.js
- 如何在视频中添加视频文件.js 4.2.1.
- 从快速节点下载文件.js具有 JWT 授权
- 访问 JavaScript 文件.js中的 C# 变量
- 在节点中热重载外部 js 文件.js如果文件有任何更改
- 如何在一台服务器中运行不同的.js文件.js NODE JS中的文件
- 如何在多文件.js中上传文件时检查文件扩展名
- 将文件.js中的var导入到模块joomla的模板中,并使用后台进行修改
- 在path项目中编写文件js脚本