账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    Nodejs request上传文件 怎么获取上传的进度?
    29
    0

    let httpReq=request.post({url:url,...option}, (error, response, body)=> {

                clearInterval(progress);
                if(error){
                    throw error;
                }else{
                    const [success,data]=JSON.parse(body);
                   
                    const res={
                        success:success=='ok',
                        data:data
                    };
                    if(res.success){
                        resolve(res);
                    }else{
                        throw body;
                    }
                }
            });
            
            const progress= setInterval(()=>{
                console.log('upload:'+httpReq.req.connection._bytesDispatched);
            },250);
            
            翻墙看到的一段也不行 得到的还是文件的大小 不是上传的大小
    0
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 10 元积分
        全部回答
    • 0
    • 在Node.js中,你可以使用http模块来上传文件。当你上传文件时,你可以使用res.download()方法来获取文件的进度。以下是一个简单的例子:

      ```javascript const http = require('http');

      http.createServer((req, res) => { if (req.method === 'POST') { const file = req.files.file; console.log(File ${file.name} uploaded with ${file.size} bytes); const progress = file.size / (file.size + 1024 * 1024); res.download(file-${file.name}.zip, progress); } }).listen(3000); ```

      在这个例子中,我们首先检查请求的方法是否为POST。如果是,我们获取请求中的文件对象,并打印出文件名和大小。然后,我们计算文件大小与总大小的比例,以获取文件的进度。最后,我们使用res.download()方法下载文件,并设置文件名和进度。

      注意,res.download()方法在文件上传过程中并不立即下载文件,而是等待文件完成上传后再下载。因此,如果文件上传速度非常快,那么文件下载可能需要一段时间。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部