2017-02-11 52 views
0

我有一個字段的形式:上傳圖片並將其發送到服務器(AngularJS和新澤西州)

<div class="form-group"> 
    <label>Email Address</label> 
    <input type="email" ng-model="email" class="form-control"> 
</div> 
<div class="from-group"> 
    <label>Photo</label>: 
<input type="file" ngf-select ng-model="picFile" name="file" accept="image/*" ngf-max-size="2MB" required> 
</div> 
<div class="form-group"> 
    <input ng-click="uploadPic(picFile)" type="submit" class="btn btn-lg btn-default pull-right btn-block"value="Register"> 
</div> 

而在控制器(採用NG-文件上傳):

$scope.uploadPic = 
    function(file) { 
     console.log('Uploading image...'); 
     Upload.upload({ 
      url : 'upload', 
      data : { 
      email : $scope.email, 
      file : file 
    })}; 

我不我知道如何在服務器中接收這種對象。我想是這樣的:

@POST 
@Path("/upload") 
@Produces(MediaType.MULTIPART_FORM_DATA) 
public void upload(@FormDataParam("file") InputStream fileIputStream, 
      @FormDataParam("email") String email) {} 

但我認爲問題出在InputStream中,因爲發送的對象是不同的類型?如果客戶端的代碼是有效的如何接收和保存服務器上的圖像? 又一次,應用程序是在客戶端和服務器端的Jersey上使用AngularJS開發的。

回答

0

解決方案,我認爲:

首先下載:

  1. 球衣,媒體多,2.17.jar
  2. mimepull-1.9.3.jar

然後加入:

<init-param> 
     <param-name>jersey.config.server.provider.classnames</param-name> 
     <param-value>org.glassfish.jersey.filter.LoggingFilter; 
     org.glassfish.jersey.media.multipart.MultiPartFeature</param-value> 
</init-param> 

into web.x ml文件,內部爲<servlet>

相關問題