2017-02-11 58 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>