簡體   English   中英

使用Ajax將文件上傳到Node.js

[英]File upload to nodejs using ajax

我正在嘗試使用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。 請幫忙

嘗試使用jQuery Form Plugin 它將為您做到這一點。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM