Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用node.js获取图像上传进度并在我的iphone应用程序中使用_Javascript_Ios_Iphone_Node.js - Fatal编程技术网

Javascript 如何使用node.js获取图像上传进度并在我的iphone应用程序中使用

Javascript 如何使用node.js获取图像上传进度并在我的iphone应用程序中使用,javascript,ios,iphone,node.js,Javascript,Ios,Iphone,Node.js,我不知道如何使用node.js获取当前上传进度,也不知道如何将进度值发送到我的iphone客户端应用程序。我目前有一个这样的代码,但它只保存图像文件,并将图像文件名保存到数据库 app.post('/event', function (req, res) { fs.readFile(req.files.displayImage.path, function (err, data) { var newPath = __dirname + '/uploads/' + req.

我不知道如何使用node.js获取当前上传进度,也不知道如何将进度值发送到我的iphone客户端应用程序。我目前有一个这样的代码,但它只保存图像文件,并将图像文件名保存到数据库

app.post('/event', function (req, res) {
    fs.readFile(req.files.displayImage.path, function (err, data) {
        var newPath = __dirname + '/uploads/' + req.files.displayImage.name;
        fs.writeFile(newPath, data, function (err) {
            if (!err) {
                var pic = req.files.displayImage.name;
                connection.query('INSERT INTO Event SET ?', {pic: pic}, function (error, result) {
                    if (error) {
                        res.send(error, 400);
                    } else {
                        res.send({insertId: result.insertId}, 200);
                    }
                });
            }
        });
    });
});

与node中的其他所有内容一样,有一个节点模块(名为)用于此目的。虽然我没有亲自使用过,但它看起来很坚固。由于您似乎正在使用
Express
,因此我将在我的示例中执行相同的操作:

首先,您需要设置uploadHandler:

var app = express();
var uploadHandler = require('node-upload-progress');
uploadHandler.configure(function() {
    return this.uploadDir = "" + __dirname + "/uploads";
});

app.post('/event', function (req, res) {
    return uploadHandler.progress(req, res);
});
看一下,这将返回一个200状态码,上传数据在一个json对象中

关于你可以使用它的一个例子,请勾选这个,我将从中发布下面的代码片段。这个代码片段展示了如何使用来自客户端的ajax调用定期检查进度状态

uploadIntervalID = setInterval(function(){
      $.get('/progress?X-Progress-ID=' + xProgressID, function(data){
            if(data.status === 'done'){
                clearInterval(uploadIntervalID);
            }
            updateUploadStatus(data);
      }).error(function(){clearInterval(uploadIntervalID)});
 }, 250);

这似乎有两个问题:如何返回进度以及如何使用进度。虽然我可以帮助您解决第一个问题,但您可能希望为后一个问题提出另一个问题,因为您没有提供有关如何使用它的任何信息。感谢您提及此模块。我去看看。