2017-08-11 20 views
0

Ich bin ein Anfänger am Ionischen Rahmen Entwicklung.Ionic native Dateiübertragung - Datei-Upload - Node js Express-Server, aber req.files undefined

Dies ist der Fluss meiner ionischen App. - Wählen Sie ein Bild aus den Ordnern und klicken Sie auf "Bild hochladen". - Ich habe ionen-native Dateiübertragung zum Hochladen auf Nodejs Express-Server verwendet.

Dies ist mein Code.

// ionische Seite https://www.dropbox.com/s/k1nittp0p8t4ay3/item-create.rar?dl=0

// Knoten js Quelle https://www.dropbox.com/sh/0zd9ydk0uhhz5g7/AABIg9S7hV6XiIzrMTj8FKA2a?dl=0

Hauptpunkt: app.post ('/ upload', function (req, res)), upload()

//ionic3-item.js 
     uploadImage() //When press upload button 
     { 

      const fileTransfer:FileTransferObject = this.transfer.create(); 

      let option: FileUploadOptions = { 
      fileKey:'file', 
      fileName:'name.jpg', 
      mimeType:'image/jpeg' 
      }; 
      fileTransfer.upload(this.fileurl, encodeURI("http://192.168.1.249:8080/upload"),option); 

     } 
    } 

    //This Node js server code.  

    //route/ index.js 
    module.exports = function(app, Article) 
    { 

     //Uploaded Article------------------This part ------------------------- 
     app.post('/upload', function(req,res){    
      console.log(req.files); 
     }); 

    } 

Aber req.files ist undefined. Ich frage mich, wie ich die hochgeladenen Dateien von ionic app behandeln kann. Bitte helfen.

Danke.

+0

Können Sie Ihren Code in die Frage einfügen. Es macht es leichter zu lesen und zu verstehen – Malice

+0

Danke für die Antwort. Ich habe den Code eingefügt. – fastworker399

Antwort

0

Dies ist die Client-Quelle.

var name = "upload"; 

let option: FileUploadOptions = { 
    fileKey:'file', 
    mimeType:'audio/3gp', 
    httpMethod:'POST', 
    fileName:'user_step4#'+name 
}; 

this.loader = this.loadingCtrl.create({ 



    content:'登录中...', 



}); 


this.loader.present(); 

const fileTransfer:FileTransferObject = this.transfer.create(); 

console.log('filename'+this.curfilename); 

fileTransfer.upload(this.file.externalRootDirectory+this.curfilename, encodeURI(localStorage.getItem('GlobalIP')+"/upload"),option).then((result)=> 
{ 
    console.log('success'); 
}).catch(error=>{ 
this.loader.dismiss();  
console.log('uploaderror'); 
console.log(error.message); 
}); 
} 

Dies ist Servercode

var multer  = require('multer'); 


var storage = multer.diskStorage({ 
destination:function(req, file, cb) 
{ 
    console.log('uploadpath:'+file.originalname); 

var pathname = file.originalname.split('#'); 
    console.log(file.originalname); 
var path = pathname[0].replace('_','/'); 


console.log(path); 

    cb(null,'public/resources/'+path); 

},filename:function(req,file,cb)  
{ 
    var pathname = file.originalname.split('#'); 
    var filename = pathname[1]; 
    console.log(filename); 
if(filename!=undefined) 
     cb(null, filename);    
} 
}); 


//For multipart/form-data Uploading 
var upload = multer({storage:storage}); 

app.post('/upload',upload.single('file'), function(req,res,next) 
{ 
    console.log("uploaded"); 
    res.json({result:1}); 

}); 

Danke fürs Lesen.

Verwandte Themen