Gradle+Jersey+AngularJs图片上传功能后台代码

@POST @Path("/saveImage")	
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.MULTIPART_FORM_DATA)
public String saveImage(@FormDataParam("file") InputStream uploadedInputStream,
			@FormDataParam("file") FormDataContentDisposition fileDetail)
			throws CredentialNotFoundException, CredentialExpiredException {
		Account owner = (Account) SecurityUtils.getSubject().getPrincipal();
		String fileName = String.valueOf(owner.getId());
		String fileFullName = fileDetail.getFileName();
		try {
			String portraitUrl = "/upload/" + fileName + System.currentTimeMillis()
					+ fileFullName.substring(fileFullName.indexOf("."), fileFullName.length());
			File file = new File(System.getProperty("user.dir") + "/src/main/webapp" + portraitUrl);
			if (file.exists() == false) {
				System.out.println(file.getPath());
				file.createNewFile();
			}
			OutputStream outputStream = new FileOutputStream(file);
			int length = 0;
			byte[] buff = new byte[256];
			while (-1 != (length = uploadedInputStream.read(buff))) {
				outputStream.write(buff, 0, length);
			}
			uploadedInputStream.close();
			outputStream.close();
			Profile profile = profileService.get(owner.getId());
			if (profile.getPortraitUrl() != null || profile.getPortraitUrl() != "") {
				File delFile = new File(System.getProperty("user.dir") + "/src/main/webapp" + profile.getPortraitUrl());
				delFile.delete();
			}
			profile.setPortraitUrl(portraitUrl);
			profileService.saveOrUpdate(profile);
		} catch (FileNotFoundException e) {// TODO Auto-generated catch blocke.
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return String.valueOf("上传成功!");
	}

其他:

1.web.xml配置Jersey的Servlet,不配置的话编译报错。

<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>

2.上传文件接口需要导入包,在gradle.build引入dependencies,就可以自动下载包了

compile "org.glassfish.jersey.media:jersey-media-multipart:${jerseyVersion}"

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值