标签:jersey
最近在搞webService的文件上传。服务器端好搞,就是客户端比较麻烦,mark一下。
服务端的代码:
@POST @Path("uploadFile") @Consumes(MediaType.MULTIPART_FORM_DATA) @Produces(MediaType.APPLICATION_XML) public String uploadFile(FormDataMultiPart form) { String filePath; String baseUrl = AppConfig.getProperty("res.root.path"); try { UploadRule rule = new UploadRule(baseUrl,Constants.SPT + UploadRule.ACCESS_SCOPE_PROTECTED + SCOPE); //boay中可能有多个附件,循环出来 List<BodyPart> v1 = form.getBodyParts(); List<String> paths = new ArrayList<String>(); for (BodyPart p : v1) { FormDataBodyPart vPart = (FormDataBodyPart) p; InputStream v = vPart.getValueAs(InputStream.class); String fileName = vPart.getName(); File destDir = new File("d:/upload/files"); if(!destDir.exists()) destDir.mkdirs(); OutputStream outputStream = new FileOutputStream(new File("d:/upload/files/"+fileName )); int length = 0; byte[] buff = new byte[1024]; while (-1 != (length = v.read(buff))) { outputStream.write(buff, 0, length); } v.close(); outputStream.close(); <pre name="code" class="html"> filePath = "d:/upload/files/"+fileName}
public static void main(String[] args) { ClientConfig config = new DefaultClientConfig(); Client client = Client.create(config); //上传的地址 WebResource r = client.resource("http://jjy.cost168.com/api/upload/uploadFile"); FormDataMultiPart form=new FormDataMultiPart(); File f = new File("d:/x1.txt"); InputStream file = null; try { file = new FileInputStream(f); } catch (FileNotFoundException e) { e.printStackTrace(); } FormDataBodyPart formDataBodyPart = new FormDataBodyPart(); //这里指定上传时的类型 formDataBodyPart.setValue(MediaType.MULTIPART_FORM_DATA_TYPE, file); formDataBodyPart.setName("x1.txt"); form.getBodyParts().add(formDataBodyPart);//这样写的好处是可以上传多个附件 //这里的type也要指定为data FilesResponse files = r.accept(MediaType.APPLICATION_XML).type(MediaType.MULTIPART_FORM_DATA).post(FilesResponse.class, form); for (String string : files.getPaths()) { System.out.println(string); } }需要用到的jar
<dependency> <groupId>com.cost168.lib.bl</groupId> <artifactId>rest_core</artifactId> <version>0.0.1-SNAPSHOT</version> </dependency> <dependency> <groupId>com.sun.jersey</groupId> <artifactId>jersey-core</artifactId> <version>1.17.1</version> </dependency> <dependency> <groupId>com.sun.jersey</groupId> <artifactId>jersey-client</artifactId> <version>1.17.1</version> </dependency> <dependency> <groupId>com.sun.jersey</groupId> <artifactId>jersey-json</artifactId> <version>1.17.1</version> </dependency> <dependency> <groupId>com.sun.jersey.contribs</groupId> <artifactId>jersey-multipart</artifactId> <version>1.17.1</version> </dependency>
标签:jersey
原文地址:http://blog.csdn.net/mimixin/article/details/43604717