>

서버 노드 JS 파일 업로드 오순절 :

var multer      = require('multer');
        var storage = multer.diskStorage({
            destination: function (req, file, callBack) {
              console.log(req.body);
                callBack(null, 'public/images/');
            }, filename: function (req, file, callBack) {
              callBack(null, 'someName');
          }
        });
        var upload = multer({ storage: storage }).single('file');

          outer.post('/uploads',uploads.single('file'),
    function(req, res) {
      //console.log(JSON.stringify(req.files.file));
      console.log('/////////////////////////////////');
      console.log(JSON.stringify(req.body));
      console.log(JSON.stringify(req.params))
      console.log(req.files.file)
      var base64Data = req.files.file.data.toString('base64').replace(/^data:image\/jpeg;base64,/, "");
   //console.log(base64Data);
       var time = Date.now().toString()+"out.jpeg" ;
fs.writeFile('public/images'+"/"+time, base64Data, 'base64', function(err) {
console.log(err +' §§§§§§§§§§§'  ); 
}); 
      res.status(204).end();
    }
  );

Frontend Ionic 3 :

var name = "upload";  

    var par = {
      token : this.myToken ,
      contenu_titre : this.contenu_titre ,
      contenu_text : this.contenu_text ,
      contenu_type : 'img' ,
    }  ;
    let option: FileUploadOptions = {
      params : par,
      fileKey:'file',
      mimeType:'image/jpeg',
      httpMethod:'POST',
      fileName:'user_step4#'+name
    };



    let loader = this.loadingCtrl.create({
      content: "Uploading...."
    });
    loader.present();
    const fileTransfer:FileTransferObject = this.transfer.create();
   // console.log('filename'+this.curfilename);
    fileTransfer.upload(this.photo  ,encodeURI(this.linkPic+"/publication/uploads"),option).then((result)=>
    {
      alert('uploaded')
      console.log('success');
      console.log(result);
      loader.dismiss();  
    }).catch(error=>{
   loader.dismiss();  
   alert(error);   
    console.log('uploaderror');
    console.log(error.message);  
    });   
    }

서버에서 Params 값을 얻고 싶습니다. 매번 정의되지 않거나 null 내 데이터베이스에 매개 변수를 저장하기 위해 일부 파일에 매개 변수를 추가하고 싶습니다. 업로드가 제대로 작동하지만 매개 변수를 얻지 못합니다. req.body return {} req.file은 파일 이름과 파일을 반환합니다.

  • 답변 # 1

    FileTransferOptions와 함께 매개 변수를 사용하여 파일과 함께 매개 변수를 보낼 수 있습니다. mimeType : "multipart/form-data"를 사용하여이 요청에 여러 유형의 데이터를 포함하도록 지정

    var options =
          {
            fileKey: "file",
            fileName: filename,
            chunkedMode: false,
            mimeType: "multipart/form-data",
            params: {
          "full_name": this.userForm.value.u_name,
          "email": this.userForm.value.u_email,
          "country": this.userForm.value.u_country,
          "state": this.userForm.value.u_state,
          "city": this.userForm.value.u_city,
          "pincode": this.userForm.value.u_pincode,
          "fax": this.userForm.value.u_fax,
          "address": this.userForm.value.u_address,
        }
      };
    
      transfer.upload(this.photo, this.yourURL, options).then(data =>
      {
               //Handle the response from the server
       }
    
    

  • 이전 갤러리 폴더에서 SD 카드 대체 폴더로 Android 복사 이미지
  • 다음 firebase - Cloud Firestore 트리거를 사용하여 경주 문제를 방지하는 방법