2017-10-23 3 views
0

My ServerはExpressで、ファイルの処理にはMulterを使用します。Ionic 3/Angular 4でTransferObjectを使用してObservable forkJoinを使用するにはどうすればよいですか?

私はuploadArrの配列オブジェクトだ:ここで

var url = "http://192.168.8.101:3000/store_points_upload"; 

    let targetPaths = []; 
    let filenames = []; 
    let optionLists = []; 
    this.displayTypesArr.map((dt) => { 
    dt.storeDisplays.map((st) => { 
     targetPaths.push(this.pathForImage(st.imageUrl)); 
     filenames.push(st.imageUrl); 
     optionLists.push({ 
     fileKey: st.imageUrl, 
     fileName: st.imageUrl, 
     chunkedMode: false, 
     mimeType: "multipart/form-data", 
     params : {'fileName': st.imageUrl} 
     }) 
    }) 
    }) 

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

    let uploadArr = []; 
    for (let i = 0; i < targetPaths.length; i ++){ 
    uploadArr.push({ 
     targetPath: targetPaths[i], 
     url: url, 
     option: optionLists[i] 
    }); 
    } 
    Observable.forkJoin(
    uploadArr.map(i => fileTransfer.upload(i.targetPath, url, i.option)) 
    ).subscribe((res) => { 
     console.log('success'); 
    }); 

を、私は、サーバーで500エラーを得た私のサーバーの一部

var storage = multer.diskStorage(
{ 
    destination:function(req, file, cb){ 
     var filePath = appRoot + "/public/uploads/"; 
     cb(null,filePath); 
    }, 
    filename:function(req,file,cb){ 
     var filename = file.originalname; 
     console.log('filename', filename); 
     if(filename != undefined){ 
      cb(null, filename); 
     } 
    } 
}); 

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

router.post('/store_points_upload', cors(), upload.single('file'), storePoints.upload); 

です。

答えて

0

コードは実際には正しいですが、私が作った間違いは、Multerのオプションです。

optionLists.push({ 
      fileKey: 'file', //change this from st.imageUrl to 'file' 
      fileName: st.imageUrl, 
      chunkedMode: false, 
      mimeType: "multipart/form-data", 
      params : {'fileName': st.imageUrl} 
      }) 
関連する問題