2017-06-06 40 views
0

要上傳的文件, 角JS部分: 我在我的電腦板使用這樣的:如何使用AngularJS實現文件上傳,Spring-Boot?

var uploader = $scope.uploader = new FileUploader({ 
    url: '/imageUpload' 

});

在HTML: <input type="file" nv-file-select="" uploader="uploader" accept="image/png, image/jpeg, image/gif" name="input-file-preview" ng-disabled="em.checked"/> 彈簧引導部分(在服務方法):

@RequestMapping(value="/imageUpload", method = RequestMethod.POST) 
    public void UploadFile(@RequestParam("file") MultipartFile file,RedirectAttributes redirectAttributes) throws IOException { 
     System.out.println("file uploading ..............."); 
     /* 
     Iterator<String> itr=request.getFileNames(); 
     MultipartFile file=request.getFile(itr.next()); 
     String fileName=file.getOriginalFilename(); 
     File dir = new File("C:\\file"); 
     if (dir.isDirectory()) 
     { 
      File serverFile = new File(dir,fileName); 
      BufferedOutputStream stream = new BufferedOutputStream(
        new FileOutputStream(serverFile)); 
      stream.write(file.getBytes()); 
      stream.close(); 
     }else { 
      System.out.println("not"); 
     } 
     */ 
    } 

但我得到403 Forbidden錯誤,因爲它無法找到/ imageUpload資源。任何人都可以向我解釋,當我們使用spring啓動時,這個fileUploader是如何工作的,因爲這段代碼在上傳php文件時工作正常。

在此先感謝

回答

0

服務器端實施看起來不錯。從角度服務嘗試使用POST請求使用formData,它應該工作。

function saveDoc(file) { 
       var deferred = $q.defer(); 
       var formData = new FormData(); 
       formData.append('file', file); 

       $http.post(urls.DOC_URL+'upload', formData,{ 
        transformRequest : angular.identity, 
        headers : { 
         'Content-Type' : undefined 
        }}) 
        .then(
         function (response) { 
          deferred.resolve(response.data); 
         }, 
         function (errResponse) { 
          alert(errResponse.data.errorMessage); 
          deferred.reject(errResponse); 
         } 
        ); 
       return deferred.promise; 
      }; 

參考: Spring Boot Angular JS file Upload

相關問題