【问题标题】:Multer onFileUploadComplete not workingMulter onFileUploadComplete 不起作用
【发布时间】:2015-07-09 16:25:51
【问题描述】:

我想用上传文件的路径更新我的 MongoDb 数据库。我正在使用 multer 中间件进行文件上传。但是在我的例子中,$push 并没有向数组推送任何值。

onFileUploadComplete: function (file) {
    cs.update(
        {'question.qid' : pprcd+qusid},
        {$push: { 'question.images.image' : file.path} },
        function(err){
            if(err){
                console.log(err);
            }else{
                console.log('Pushed filePath to db');
            }
        }
    );
     console.log(file.fieldname + ' uploaded to  ' + file.path);
}

我的代码有什么问题?前提是 pprcd 和 qusid 是两个具有一定值的预定义全局变量。

【问题讨论】:

    标签: node.js file-upload mongoose multer


    【解决方案1】:

    尝试在 post 路由中更新。这条路由是从表单中调用的。`

    html
          head
            title File upload Node.
          body
            form#uploadForm(enctype='multipart/form-data', action='/api/photo', method='post')
              input(type='file', name='userPhoto')
              input(type='submit', value='Upload Image', name='submit')
          script(src='http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js')
          script(src='http://cdnjs.cloudflare.com/ajax/libs/jquery.form/3.51/jquery.form.min.js')
          script.
            $(document).ready(function() {
            $('#uploadForm').submit(function() {
            $(this).ajaxSubmit({
            error: function(xhr) {
            status('Error: ' + xhr.status);
            },
            success: function(response) {
            console.log(response);
            }
            });
            return false;
            });
            });
    ---------------------------ur sever file-------------
        app.use(multer({ dest: './uploads/',
         rename: function (fieldname, filename) {
            return filename+Date.now();
          },
        onFileUploadStart: function (file) {
          console.log(file.originalname + ' is starting ...')
        },
        onFileUploadComplete: function (file) {
          console.log(file.fieldname + ' uploaded to  ' + file.path)
          done=true;
        }
        }));
    
        app.get('/',function(req,res){
              res.sendfile("index.html");
        });
    
        app.post('/api/photo',function(req,res){
          if(done==true){
            console.log(req.files);
            res.end("File uploaded.");
          }
        });
    

    【讨论】:

    • 您会在 req.files 中找到所有详细信息。将它们存储在数据库中
    猜你喜欢
    • 1970-01-01
    • 2015-11-09
    • 1970-01-01
    • 2018-04-09
    • 2016-04-11
    • 2015-03-09
    • 2018-07-22
    • 1970-01-01
    • 2021-08-24
    相关资源
    最近更新 更多