2016-03-18 14 views
0

ajaxを使用してnodejsサーバーに画像をアップロードしようとしていますが、ファイルを取得できません。ajaxを使用してnodejsにファイルをアップロード

クライアント側

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); 
}); 

サーバー側

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

答えて

0

jQuery Form Pluginを試してみてください。それはあなたのためにこれを行います。

関連する問題