【问题标题】:File management in JavascriptJavascript中的文件管理
【发布时间】:2012-05-26 19:11:50
【问题描述】:

如何用Javascript(在服务器上)写入文件?

我还需要阅读该文件。 这是我的代码:

function write()
{
var = true;
if( var = true)
{
//write file
    }
}
function read()
{
//read file
}

【问题讨论】:

    标签: javascript file-management


    【解决方案1】:

    编写文件不是 Javascript 的特性。在最近的一些浏览器中,您已经可以阅读它们,但这不是一个好的选择。最好的方法是使用 PHP 读取它并使用 XMLHttpRequest 获取响应。

    JavaScript

    var xhr = XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject('Microsoft.XMLHttp');
    xhr.onload = function(){
        window.console.log(this.response);
    }
    xhr.open('GET','/fileReader.php?fileName=foo.txt');
    xhr.send();
    

    PHP

    $content = file_get_contents($_GET['fileName']);
    if($content)
        echo $content;
    else echo "The file could not be loaded"
    

    【讨论】:

    • 以及如何写文件(php、asp、jsp等)
    • @Wolf:您不能在客户端写入文件,超出浏览器自身的下载能力。这是一个安全问题。你喜欢点击一个链接到一个运行一些 js 并将任何内容写入你的系统的页面的想法吗?期间,故事的结尾,希望它保持这种状态;)
    • 我想在服务器上写文件
    • 文件的内容是什么?用户在 textarea 上写的东西?
    • @MarkLinus no, if(blabla = true) { //将 blabla 写入文件 }
    【解决方案2】:

    如果我正确理解了您的问题,您希望在服务器中读取/写入文件,并且您的服务器端语言是 javascript。 如果您使用的是 Node,此链接:http://nodejs.org/api/fs.html#fs_fs_readfile_filename_encoding_callback 提供有关执行相同操作的相关信息。

    【讨论】:

    • 在这种情况下,您可以使用在浏览器中运行的 javascript 编写服务器端文件内容,除非您有一些明确的服务器端脚本接收 HTTP 请求并在处理后将其写入文件。之前发布的解决方案只是假设服务器端语言是 PHP。请记住相关的安全隐患,并在将内容服务器写入文件系统之前对服务器上的内容服务器执行适当的清理。
    【解决方案3】:

    您可以通过可能带有文件名或 id 的 AJAX 请求来读取文件

    var xhr = XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject('Microsoft.XMLHttp');
    xhr.onload = function(){
        window.console.log(this.response);
    }
    xhr.open('GET','/readfile.php?id=1234');
    xhr.send();
    

    您可以通过从可能的文本类型输入中获取数据来编写文件。假设输入 id 为“text”

    var xhr = XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject('Microsoft.XMLHttp');
    xhr.onload = function(){
        window.console.log(this.response);
    }
    xhr.open('POST','/write.php');
    xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    xhr.send("id=someid&text=" + document.getElementById("text").value);
    

    在 php 端只需获取 post 数据并将其写入文件

    $id = $_REQUEST["id"];
    $text = $_REQUEST["text"]
    $file = fopen($id . ".txt","w"); // you can change w to a incase you want to append to existing content in the file
    fwrite($file,$text);
    fclose($file);
    

    如果您希望 Javascript 进行读取或写入,据我所知只有 HTML5 文件 API,但我猜那只是用于读取文件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-11-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-19
      • 1970-01-01
      • 2017-11-18
      相关资源
      最近更新 更多