簡體   English   中英

如何使用node.js獲取圖像上傳進度並在我的iPhone應用程序中使用它

[英]How to get the image upload progress using node.js and use it in my iphone app

我不知道如何使用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-upload-progress )。 盡管我還沒有親自使用過它,但它似乎很可靠。 由於您似乎正在使用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對象中。

至於您可以使用它的示例,請檢查此html文件 ,我將在其中發布以下代碼段。 此代碼段顯示了如何使用客戶端的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);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM