【问题标题】:Delete files from SERVER through web interface通过 Web 界面从 SERVER 中删除文件
【发布时间】:2015-01-13 10:39:27
【问题描述】:

我需要创建一个 Web 界面,用户可以在其中上传文件、查看有关这些(已存储)文件的信息并删除它们。我已经写了前两部分(我使用 Node.js 服务器),但是我在删除存储的文件时遇到了严重的问题。

我的主要问题是,我不知道如何使用有关用户想要正确删除的文件的信息提出请求。我想我会像这样简单地使用open() 方法

xhr.open('POST', '/delete', true);

然后在服务器代码中使用条件“捕获”它,如下所示:

if (req.url == '/delete' && req.method.toLowerCase() == 'post') {th

但是这个解决方案不断抛出error 404 - Resource not found

那么,你能帮我描述一些适​​合你的方法吗?


这是我的server code

这个文件包含client-side JavaScript。 - $('.deleteLink').click() 块中的函数 createStoredFilesTable() 存在问题。

【问题讨论】:

    标签: javascript jquery node.js server


    【解决方案1】:

    最终的解决方案非常简单——问题是在 DELETE 块末尾缺少“return”,因此程序处理了请求并继续加载源代码,但找不到任何东西,因为请求 URL是“/删除”。

    所以,正确的服务器代码块在这里:

    //-------------------------------------------------------------------------------------
    //--- DELETE handling ---//
    //-----------------------//
    if (req.url == '/delete' && req.method.toLowerCase() == 'post') {
        req.on('data', function (data) {
            var filename = data.toString('ascii');
            var jsonObj = require('./storedFilesList.json');
            delete jsonObj[filename];
            var jsonString = JSON.stringify(jsonObj);
            fs.writeFile('storedFilesList.json', jsonString, function(err){
                if (err) throw err;
                fs.unlinkSync(__dirname + '/uploadedFiles/' + filename);
                console.log('File ' + filename + ' was succesfully deleted.');
            });
            res.writeHead(200, {'content-type': 'text/plain'});
            res.write('OK');
            res.end();
        });
        return;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-08
      • 1970-01-01
      • 1970-01-01
      • 2010-09-07
      • 1970-01-01
      • 2012-04-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多