2016-03-18 3 views
0

Я пытаюсь загрузить изображение на сервер nodejs с помощью ajax, но он не может получить файл.Загрузка файла в nodejs с помощью 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 
    } 

}); 

Когда я попробовать его в голой форме она работает отлично, но не с помощью Ajax. Пожалуйста, помогите

+0

Я предполагаю, что вы действительно не отправляете «URL» в качестве URL-адреса? – Ageonix

+0

Да. то есть по соображениям безопасности я должен был вынуть фактический url. –

+0

Что именно происходит? Вы получаете 404? Достижение сервиса, но не получение файла? Здесь может быть одна из многих вещей. – Ageonix

ответ

Смежные вопросы