2017-03-01 76 views
0

我想上传角2中的csv/xlxs文件,但每当我提交文件时,我都会收到一个无法上传的异常文件。请从我的后端再试一次,虽然它可以在邮递员上正常工作。我的代码有什么问题?角2上传文件

//service 
    constructor (private authenticate:AuthenticationService) { 
      this.filetrack = Observable.create(observer => { 
       this.progressObserver = observer 
      }).share(); 
     } 

     SendRequest (url: string, params: string[], files: File[]) { 
      return Observable.create(observer => { 
       let formData: FormData = new FormData(), 
        xhr: XMLHttpRequest = new XMLHttpRequest(); 

       for (let i = 0; i < files.length; i++) { 
        formData.append("uploads[]", files[i], files[i].name); 
       } 

       xhr.onreadystatechange =() => { 
        if (xhr.readyState === 4) { 
         if (xhr.status === 200) { 
          observer.next(JSON.parse(xhr.response)); 
          observer.complete(); 
         } else { 
          observer.error(xhr.response); 
         } 
        } 
       }; 

       xhr.upload.onprogress = (event) => { 

        this.progress = Math.round(event.loaded/event.total * 100); 
        this.progressObserver.next(this.progress); 
       }; 


       xhr.open('POST', url, true); 
       xhr.setRequestHeader('Authorization', 'Bearer ' + this.authenticate.user_token); 
       xhr.send(formData); 


      }); 
     } 
    } 

//component 
export class FileUploadComponent { 
    constructor(private service:FileUploadService) { 
     this.service.filetrack.subscribe(
      data => { 
       console.log('progress = '+data); 
      }); 
    } 

    onChange(event) { 
     console.log('onChange'); 
     let files = event.target.files; 
     console.log(files); 
     this.service.SendRequest('http://localhost:8000/register/v1/file/country', [], files).subscribe(() => { 
      console.log('sent'); 
     }); 
    } 
} 

回答

0

你必须设置另一头可以上传一个文件:

xhr.setRequestHeader("Content-Type", "multipart/form-data"); 
+0

我得到这个错误警告:在多/ form-data发布的数据缺少边界未知上line
Switz

+0

这个错误可能是什么? – Switz