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>
相关推荐
在本文中,我们将深入探讨如何使用RESTEasy和Guice框架实现文件的上传与下载功能。RESTEasy是一个基于Java的RESTful Web服务实现,它与Java EE应用服务器集成,而Guice是Google提供的一款轻量级依赖注入框架,帮助...
在本文中,我们将深入探讨RestEasy如何实现文件上传功能,以及如何通过代码示例进行学习入门。 首先,理解RESTful服务的基本概念至关重要。REST(Representational State Transfer)是一种网络应用程序的设计风格和...
在这个"resteasy上传功能学习资料"中,我们可以期待找到关于如何在RestEasy中实现文件上传的相关教程和示例代码。 在RESTful服务中,文件上传是一项常见的需求,它允许用户通过HTTP请求将文件从客户端发送到服务器...
综合上述知识点,使用RESTEasy框架构建WebService的整个过程,从项目初始化、资源类的编写、服务类的实现、拦截器的使用、文件上传的处理、与Spring框架的集成,以及前端请求的编码问题解决等方面都提供了一个清晰的...
8. **resteasy-multipart-provider.jar**:处理multipart/form-data类型的请求,用于上传文件。 9. **resteasy-servlet-initializer.jar**:帮助在Web应用中初始化RESTEasy,使其能够正确地部署和运行。 10. **slf...
本文将深入探讨如何巧妙利用Jersey框架解决文件上传时可能出现的乱码问题,同时也会涉及Maven的使用,以构建Web应用。 首先,了解RESTful WebService的基本概念。REST(Representational State Transfer)是一种...
在实际应用中,开发人员可能使用RestEasy构建后台服务,提供文件上传和下载的接口,然后通过Dukto这样的工具在不同设备间进行快速测试和验证,提高工作效率。 总的来说,DuktoR6.zip提供的工具可以帮助用户跨越操作...
总的来说,“file-upload-download-in-jaxrs”项目旨在演示如何在JAX-RS环境中实现文件上传和下载的核心功能,这对任何处理用户交互的Web应用都是必不可少的。开发者可以基于此项目进行扩展,例如添加身份验证、错误...
在服务器端,常见的JAX-RS实现有Jersey、RESTEasy和Apache CXF等。而在Android客户端,我们并不直接使用JAX-RS,而是利用HttpClient库来模拟对JAX-RS服务的调用。 接下来,让我们逐步构建Android JAX-RS客户端: 1...
很简单-单一源文件实现 经过测试-确信它可以正常工作 它是安全的-通过Java EE web.xml或通过Servlet过滤器(例如Spring-Security) 它是可扩展的-通过简单的类扩展 它是可嵌入的-到您的Java Web应用程序中,使...
"resteasy"是一个JAX-RS实现,它使得在Java应用中构建RESTful服务变得简单。"Tomcat8"是Apache Tomcat服务器的一个版本,它是一个流行的Java Servlet容器,用于部署Web应用程序。Nginx则是一个高性能的反向代理和...