如何使用javascript创建新的文件夹/文件?

时间:2016-04-11 01:19:21

标签: javascript file directory

我正在构建一个应用程序,我到了需要在应用程序中的目录中创建新文件夹/文件的部分。我为这些文件/文件夹和按钮创建了表单,但我不确定它们是如何实际出现的。 我找到了这个http://community.hpe.com/t5/HPE-Service-Manager-Service/Javascript-Create-New-Local-Folder/td-p/6768020,但我不确定这是我在寻找什么

1 个答案:

答案 0 :(得分:3)

来源

对于客户端或服务器端的JavaScript解决方案,您可以使用Node.js;然而,

您可以找到有关这些“JavaScript”解决方案的大量文档;但是,还有其他“JavaScript”解决方案,NodeJS非常受欢迎。

如果您使用服务器上的其他语言(如PHP),可以在此处找到有关它的更多信息:http://php.net


解决方案

以下描述了一个JavaScript解决方案,其中包含服务器端代码,您只需复制和解决该问题。粘贴并修改您的需求。

这假设您在Linux上运行NodeJ并且文件/文件夹(路径)不是递归的。以下示例未经过测试,请随时测试&必要时修复。

对于与下面“服务器端”示例交互的客户端代码,请创建一个使用以下内容的HTML表单:method="PUT"以及vars所需的字段; - 或者 - 使用AJAX方法来完成相同的操作。

服务器端:NodeJS

let http = require('http');
//File System package...
let fsys = require('fs');


let makePath = function(root, path, data)
{
    try
    {
        fsys.accessSync(root, fsys.W_OK);
    }
    catch(err)
    {
        return {code:403, text:'Forbidden'}
    }

    path = ((path[0] == '/') ? path.substr(1, path.length) : path);

    if (path.split('/').length > 2)
    { return {code:412, text:'Precondition Failed'}; }

    if (fsys.existsSync(path))
    { return {code:409, text:'Conflict'}; }

    if (path[path.length -1] == '/')
    { fsys.mkdirSync(root +'/'+ path.substr(0, path.length -2)); }
    else
    { fsys.writeFileSync((root +'/'+ path), (data || ' '), 'utf8'); }

    return {code:200, text:'OK'};
};


http.createServer
(
    function(request, response)
    {
        let vars = url.parse(request.url);

        if (path && (path.indexOf('/') > -1) && (request.method == 'PUT'))
        {
            var resp = makePath(__dirname, vars.path, vars.data);

            response.statusCode = resp.code;
            response.setHeader('Content-Type', 'text/plain');
            response.end(resp.text);
        }
    }
).listen(8124);

用法

如果您的服务器在同一台计算机上运行,​​您可以在网络浏览器的地址栏中键入:http://127.0.0.1:8124并按Enter / return;但请参阅正确的NodeJS文档,以提供必要的客户端HTML&提到的JavaScript。