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 } response.setPaths(paths); return filePath; } catch (Exception e) { e.printStackTrace(); response.setResponseStatus(BaseResponse.RESPONSE_STATUS_ERROR); response.setResponseMessage(BaseUtil.getStackTrace(e)); return filePath; }}

客户端代码:

public static void main(String[] args) {ClientConfig config = new DefaultClientConfig();Client client = Client.create(config);//上传的地址WebResource r = client.resource("");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也要指定为dataFilesResponse 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文件上传

相关文章:

你感兴趣的文章:

标签云: