2014-12-30 37 views

回答

1

您可以試着FormData API。下面是使用jQuery的例子:

var data = new FormData(); 
data.append('image', input.files[0]); 

$.ajax({ 
    url: '/foo', 
    data: data, 
    contentType: false, 
    processData: false, 
    success: function(response) { 
    alert('Image uploaded!'); 
    }, 
    error: function(jqXHR, textStatus, errorMessage) { 
    alert('Error uploading: ' + errorMessage); 
    } 
}); 
+0

你可以請添加服務器端的一部分?我無法得到它的工作...... :( –

+0

解決了我的問題!我追加的不僅僅是文件,而且像{key:「lorem」,img:input.files [0]}這樣的對象,並且這些文件沒有在req.files中顯示。感謝您的幫助;) –

0

客戶端:

var image = $("#imageid")[0].files[0]; 
    var formdata = new FormData(); 
    formdata.append('image', image); 
    $.ajax({ 
     url: '/uploads/', 
     data: formdata, 
     contentType: false, 
     processData: false, 
     type: 'POST', 
     'success':function(data){ 
      alert(data); 
     } 
    }); 

服務器端: 使用multer

var express = require('express'); 
    var router = express.Router(); 
    var path = require("path"); 
    var multer = require("multer"); 


    var uploading = multer({ 

     dest: './public/uploads/' 

    }); 


    router.post('/', uploading.single('image'),function(req, res) { 

     console.log(req.file); 
     res.send(req.file); 
    }); 

    module.exports = router; 

輸出: 服務器端:

{ fieldname: 'image', 
    originalname: 'Untitled.png', 
    encoding: '7bit', 
    mimetype: 'image/png', 
    destination: './public/uploads/', 
    filename: 'bde1b15ba5b62b4106f86b49c73720ea', 
    path: './public/uploads/bde1b15ba5b62b4106f86b49c73720ea', 
    size: 52375 } 

希望這有助於!