`
free9277
  • 浏览: 107202 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

resteasy实现文件上传

阅读更多

resteasy服务器代码

@Path(value = "file")
public class UploadFileService {
	private final String UPLOADED_FILE_PATH = "d:\\resteasy\\";
	@POST
	@Path(value = "/upload")
	@Consumes("multipart/form-data")
	public Response uploadFile(MultipartFormDataInput input) {
		String fileName = "";
		Map<String, List<InputPart>> uploadForm = input.getFormDataMap();
		List<InputPart> inputParts = uploadForm.get("file_upload");
		for (InputPart inputPart : inputParts) {
		 try {
			MultivaluedMap<String, String> header = inputPart.getHeaders();
			fileName = getFileName(header);
			//convert the uploaded file to inputstream
			InputStream inputStream = inputPart.getBody(InputStream.class,null);
			byte [] bytes = IOUtils.toByteArray(inputStream);
			//constructs upload file path
			fileName = UPLOADED_FILE_PATH + fileName;
			writeFile(bytes,fileName);
		  } catch (IOException e) {
			e.printStackTrace();
		  }
		}
		return Response.status(200)
		    .entity("uploadFile is called, Uploaded file name : " + fileName).build();
	}
 
	private String getFileName(MultivaluedMap<String, String> header) {
		String[] contentDisposition = header.getFirst("Content-Disposition").split(";");
		for (String filename : contentDisposition) {
			if ((filename.trim().startsWith("filename"))) {
				String[] name = filename.split("=");
				String finalFileName = name[1].trim().replaceAll("\"", "");
				return finalFileName;
			}
		}
		return "unknown";
	}
 
	//save to somewhere
	private void writeFile(byte[] content, String filename) throws IOException {
		File file = new File(filename);
		if (!file.exists()) {
			file.createNewFile();
		}
		FileOutputStream fop = new FileOutputStream(file);
		fop.write(content);
		fop.flush();
		fop.close();
	}
}

 客户端代码

<form action="http://localhost:8080/resteay-server/file/upload/"
		method="post" enctype="multipart/form-data">
		<input type="file" name="file_upload"> <input type="submit"
			value="提交">
</form>

 

1
4
分享到:
评论

相关推荐

    RESTEasy实现上传下载文件

    在本文中,我们将深入探讨如何使用RESTEasy和Guice框架实现文件的上传与下载功能。RESTEasy是一个基于Java的RESTful Web服务实现,它与Java EE应用服务器集成,而Guice是Google提供的一款轻量级依赖注入框架,帮助...

    resteasy上传功能资料

    在本文中,我们将深入探讨RestEasy如何实现文件上传功能,以及如何通过代码示例进行学习入门。 首先,理解RESTful服务的基本概念至关重要。REST(Representational State Transfer)是一种网络应用程序的设计风格和...

    resteasy上传功能学习资料

    在这个"resteasy上传功能学习资料"中,我们可以期待找到关于如何在RestEasy中实现文件上传的相关教程和示例代码。 在RESTful服务中,文件上传是一项常见的需求,它允许用户通过HTTP请求将文件从客户端发送到服务器...

    使用RESTEasy构建WebService简介

    综合上述知识点,使用RESTEasy框架构建WebService的整个过程,从项目初始化、资源类的编写、服务类的实现、拦截器的使用、文件上传的处理、与Spring框架的集成,以及前端请求的编码问题解决等方面都提供了一个清晰的...

    resteasy所用能用到的jar包

    8. **resteasy-multipart-provider.jar**:处理multipart/form-data类型的请求,用于上传文件。 9. **resteasy-servlet-initializer.jar**:帮助在Web应用中初始化RESTEasy,使其能够正确地部署和运行。 10. **slf...

    巧用 Jersey RESTful WebService框架解决文件上传乱码

    本文将深入探讨如何巧妙利用Jersey框架解决文件上传时可能出现的乱码问题,同时也会涉及Maven的使用,以构建Web应用。 首先,了解RESTful WebService的基本概念。REST(Representational State Transfer)是一种...

    duktoR6.zip

    在实际应用中,开发人员可能使用RestEasy构建后台服务,提供文件上传和下载的接口,然后通过Dukto这样的工具在不同设备间进行快速测试和验证,提高工作效率。 总的来说,DuktoR6.zip提供的工具可以帮助用户跨越操作...

    file-upload-download-in-jaxrs

    总的来说,“file-upload-download-in-jaxrs”项目旨在演示如何在JAX-RS环境中实现文件上传和下载的核心功能,这对任何处理用户交互的Web应用都是必不可少的。开发者可以基于此项目进行扩展,例如添加身份验证、错误...

    为Android 创建一个 JAX-RS 客户端 代码示例

    在服务器端,常见的JAX-RS实现有Jersey、RESTEasy和Apache CXF等。而在Android客户端,我们并不直接使用JAX-RS,而是利用HttpClient库来模拟对JAX-RS服务的调用。 接下来,让我们逐步构建Android JAX-RS客户端: 1...

    HTTP-Proxy-Servlet:Smiley的HTTP代理实现为Java Servlet

    很简单-单一源文件实现 经过测试-确信它可以正常工作 它是安全的-通过Java EE web.xml或通过Servlet过滤器(例如Spring-Security) 它是可扩展的-通过简单的类扩展 它是可嵌入的-到您的Java Web应用程序中,使...

    drip-minio:minio rest服务java8

    "resteasy"是一个JAX-RS实现,它使得在Java应用中构建RESTful服务变得简单。"Tomcat8"是Apache Tomcat服务器的一个版本,它是一个流行的Java Servlet容器,用于部署Web应用程序。Nginx则是一个高性能的反向代理和...

Global site tag (gtag.js) - Google Analytics