2016-03-18 25 views
0

Ich versuche, Image auf Nodejs-Server mit Ajax hochladen, aber es wird nicht Datei erhalten.Datei-Upload zu Nodejs mit Ajax

Client Side

function sendFileToServer(file){ 
    var formData = new FormData(); 
    formData.append('profile_image',file,file.name); 
    $.ajax({ 
     type: "POST", 
     url: "URL", 
     data: formData, 
     dataType:'json', 
     processData: false, 
     success: function (data) { 

      alert("Data Uploaded: "+data); 
     }, 
     error : function(err){ 
      alert(JSON.stringify(err)); 
     } 
    }); 
} 
$("#profile_image_2").change(function(){ 
    var file = this.files[0]; 
    sendFileToServer(file); 
}); 

Server Side

var multer = require('multer'); 
var mime = require('mime-lib'); 
var storage = multer.diskStorage({ 
    destination: function (req, file, cb) { 
     cb(null, './public/upload/') 
    }, 
    filename: function (req, file, cb) { 
     console.log("filename exte "+file.mimetype); 
     console.log(mime.extension(file.mimetype)); 
     cb(null, Date.now() + '.' + mime.extension(file.mimetype)[0]); 
     //crypto.pseudoRandomBytes(16, function (err, raw) { 
     // cb(null, raw.toString('hex') + Date.now() + '.' + mime.extension(file.mimetype)); 
     //}); 
    } 
}); 
var uploading = multer({ storage: storage }); 
router.post('/profile',uploading.single('profile_image') ,function(req,res){ 

    if (req.file){ 
     res.json("In here"); 

    }else{ 
     res.json("FILE DOES NOT EXIST");//ALWAYS ENDS UP HERE 
    } 

}); 

Wenn ich es in nackter Form versuche es funktioniert gut, aber nicht mit Ajax. Bitte helfen Sie

+0

Ich schätze, Sie senden nicht wirklich "URL" als die URL? – Ageonix

+0

Ja. Aus Sicherheitsgründen musste ich die eigentliche URL herausnehmen. –

+0

Was genau passiert? Bekommst du einen 404? Den Service erreichen, aber die Datei nicht erhalten? Es könnte eines von vielen Dingen hier geschehen. – Ageonix

Antwort

Verwandte Themen