繁体   English   中英

我如何允许用户将文件上传到我的网站,对其进行编辑并将其保存回去

[英]How do I allow the user to upload file to my site, edit it and save it back

我正在构建一个非常简单的Web应用程序。 没有php-只有html和javascript。

我想为来我网站的用户获得此用例:

  1. 用户将从他/她的计算机中选择一个文本文件-例如:c:\\ directory \\ file.txt
  2. 他将在我的网页中打开此文件(我是否必须为此使用php?将文件上传到服务器,然后在我的网站上显示?如果我不希望服务器中的数据-只是为了让用户编辑它-我可以在客户端使用JS执行所有这些操作吗?)
  3. 他将编辑一些文本
  4. 他将按下名为“保存”或“另存为”的按钮,它将自动将文件保存在计算机中。

由于我对文件管理一无所知-我很高兴获得提示,以获取有关管理该库或有关该库的一般信息的js库的建议。

谢谢,阿隆

ps在网络上搜索“上传文件”给了我很多关于如何将文件上传到ftp的结果-我的问题不是这个。

您似乎要求的通常需要服务器端代码(例如php)。

话虽如此,但是有一些方法可以仅使用JavaScript来实现。 该代码将主要针对浏览器,并且在保存时会生成安全警告( 因为让JavaScript使用此类资源通常是不安全的 )。 具体来说,我记得TiddlyWiki ,它仅适用于JavaScript和HTML。 看一看这样的TiddlyWiki文件中的代码,里面有这样的代码:

// Returns null if it can't do it, false if there's an error, true if it saved OK
function mozillaSaveFile(filePath,content)
{
    if(window.Components) {
        try {
            netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
            var file = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
            file.initWithPath(filePath);
            if(!file.exists())
                file.create(0,0x01B4);// 0x01B4 = 0664
            var out = Components.classes["@mozilla.org/network/file-output-stream;1"].createInstance(Components.interfaces.nsIFileOutputStream);
            out.init(file,0x22,0x04,null);
            out.write(content,content.length);
            out.flush();
            out.close();
            return true;
        } catch(ex) {
            return false;
        }
    }
    return null;
}

或者,根据需要支持的浏览器,可以研究HTML5的本地存储功能。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM