`

实现文件上传---非form提交方式(实例、教程)

阅读更多
转:http://blog.csdn.net/caizhh2009/article/details/7012956
利用resteasy框架构建rest webservice----第三波:实现文件上传---非form提交方式(实例、教程)
分类: webservice web restful java resteasy 2011-11-25 18:00 1159人阅读 评论(8) 收藏 举报
因为工作原因,很久时间木有更新了,不怕有时间久继续更新:

基本的resteasy的搭建详情请看第一、二波,我这里指的上传是指利用resteasy来获取:客户端HTTP开发包发送的body请求-----刚开始也没撒头绪,第一时间去google,发现有哥们问同样的问题,但是却没有解决方法,于是乎就只有硬着头皮看英文文档,发现如下文档:

The @Context annotation allows you to inject instances of javax.ws.rs.core.HttpHeaders, javax.ws.rs.core.UriInfo, javax.ws.rs.core.Request, javax.servlet.HttpServletRequest, javax.servlet.HttpServletResponse, javax.servlet.ServletConfig, javax.servlet.ServletContext, and javax.ws.rs.core.SecurityContext objects.



翻译下呢就是说使用@Context 注解就可以将 javax.ws.rs.core.HttpHeaders, javax.ws.rs.core.UriInfo, javax.ws.rs.core.Request, javax.servlet.HttpServletRequest, javax.servlet.HttpServletResponse, javax.servlet.ServletConfig, javax.servlet.ServletContext, and javax.ws.rs.core.SecurityContext等等实例注入到变量中

server端resource类代码如下:


[html] view plaincopy
@PUT 
@Path(value = "/{folder}/{fileName}") 
public Response uploadFile(@PathParam("folder") String folder,@PathParam("fileName") String fileName,     @Context HttpServletRequest request) 

    File f = new File("x:\\"+fileName); 
    InputStream is = null; 
    try { 
        is = request.getInputStream(); 
        FileUtils.copyInputStreamToFile(is, f); 
    } catch (IOException e) { 
        // TODO Auto-generated catch block 
        e.printStackTrace(); 
    } 
    return Response.ok().build(); 



请主要看下以上代码红色部分,就相当于把HttpServletRequest请求注入到了request变量中,那么通过request对象获取获取输入流,则得到了body主体部分的数据。
客户端的代码如下


[html] view plaincopy
String urlResouce = "http://localhost:8080/cloud-storeage-boss/muluSDF/xyz.png"; // create URL 
        File localFile = new File("C:\\Users\\maomao\\Pictures\\2.png"); 
        try{ 
             
        HttpURLConnection urlConnection = 
        (HttpURLConnection) (new URL(urlResouce)).openConnection(); 
        urlConnection.setDoInput(true); 
        urlConnection.setDoOutput(true); 
        urlConnection.setRequestMethod("PUT"); 
        OutputStream urlOutputStream = urlConnection.getOutputStream(); 
        FileInputStream fileInputStream = new FileInputStream(localFile); 
        IOUtils.copy(fileInputStream, urlOutputStream); 
        fileInputStream.close(); 
        urlOutputStream.close(); 
        System.out.println(urlConnection.getResponseCode()); 
        } 
        catch(Exception e) 
        { 
            e.printStackTrace(); 
        } 


通过此客户端的调用,就可以将本地的2.png文件上传到服务器,并被保存为xyz.png.


上传就是如此的简单,如果大家有兴趣,下一波会讲讲form方式的提交上传或者下载文件
分享到:
评论

相关推荐

    Delphi7 multipart/form-data实现上传文件

    总的来说,Delphi 7 使用 Indy 10 的 `TIdHTTP` 控件和 `TIdMultipartFormDataStream` 类可以方便地实现 `multipart/form-data` 方式的文件上传。理解这些组件的工作原理和使用方法,对于开发涉及文件交互的Web应用...

    解决java enctype multipart form-data文件上传传值问题

    ### 解决Java enctype "multipart/form-data" 文件上传传值问题 在Java Web开发中,处理文件上传是一项常见的任务。特别是当涉及到使用`multipart/form-data`作为表单的编码类型时,这种需求更为突出。本文将深入...

    文件上传实例-JAVA

    在Java编程领域,文件上传是...总的来说,这个"文件上传实例-JAVA"提供了一个基础的文件上传实现,可以帮助开发者理解文件上传的核心概念和流程。实际开发中,可以根据项目需求和安全规范,进一步完善和优化这个实例。

    一个Struts1多文件上传实例(附Form中传List示例)

    本实例主要探讨如何在Struts1中实现多文件上传功能,并结合Form中传递List类型的数据,这对于理解MVC模式下的文件处理和数据传递有重要作用。我们将深入讨论以下几个关键知识点: 1. **Struts1框架基础**: Struts...

    POI导入Excel文件--form表单提交

    本篇文章将详细探讨如何使用POI库来导入Excel文件,并结合form表单提交的数据进行处理。我们将讨论以下几个核心知识点: 1. **Apache POI简介** Apache POI 是一个开源项目,它提供了API来处理Microsoft的Office...

    用jspSmart实现文件上传到数据库的实例

    在Java Web开发中,文件上传是一项常见的功能,用于允许用户上传图片、文档等文件到服务器。本实例将探讨如何利用jspSmart库来实现在数据库中存储上传的文件。jspSmart是一个方便的Java库,它简化了文件上传的过程,...

    JSP实现文件的上传下载视频教程

    它简化了从请求中提取文件和其他表单字段的过程,使得文件上传的实现更加简洁和高效。 2. **文件上传过程**: - 用户通过HTML表单选择文件,表单的`enctype`属性设置为`multipart/form-data`,以支持文件上传。 -...

    php多文件上传实例

    在标题"php多文件上传实例"中,我们可以推断出这是一个关于PHP编程的教程,特别关注的是如何处理用户通过表单提交的多个文件。 首先,我们要理解PHP中的文件上传机制。这涉及到HTTP协议中的multipart/form-data编码...

    jQuery-Form-书本实例.rar

    jQuery Form插件支持文件上传,即使在跨域环境下也能实现。只需在表单中添加`enctype="multipart/form-data"`属性,然后使用`ajaxForm`或`ajaxSubmit`,插件会自动处理文件上传。 6. **进度条与状态显示** 对于大...

    WebAPIFileUploadDemo通过multipart/form-data方式同时上传文件以及数据包含客户端上传例子

    - 异步处理:使用异步操作处理文件上传,提高用户体验。 - 错误处理:添加适当的错误处理机制,以处理上传失败的情况。 5. **性能优化**: - 分块上传:对于大文件,可以考虑分块上传,减少内存占用和提高上传...

    servlet实现的上传文件实例

    在这个"Servlet实现的上传文件实例"中,我们将深入探讨如何使用Servlet来处理客户端上传的文件。上传文件是Web应用程序中常见的功能,例如用户提交简历、上传图片或者共享文档等。以下是关于这个主题的详细知识点: ...

    文件上传-jar包齐全

    在这个"文件上传-jar包齐全"的项目中,开发者可能已经配置好了所有必需的依赖,并编写了完整的文件上传处理逻辑,包括前端表单提交、后端接收文件、验证、存储以及可能的错误处理。对于初学者或需要快速实现文件上传...

    common-fileupload实例:fileList = upload.parseRequest(request);上传file文件和form表单提交

    在这个实例中,我们将探讨如何使用`common-fileupload`库来处理文件上传,同时结合form表单数据的提交。 首先,让我们理解`fileList = upload.parseRequest(request);`这行代码在文件上传过程中的作用。`upload....

    jsp实现文件上传存储代码实例[可运行].rar

    本实例将详细讲解如何使用JavaServer Pages(JSP)技术实现文件上传并存储到服务器的代码实践。 一、JSP概述 JSP(JavaServer Pages)是一种动态网页开发技术,它允许开发者在HTML页面中嵌入Java代码,从而在服务器...

    Struts2文件上传下载和表单重复提交问题

    在实际应用中,文件上传和下载以及防止表单重复提交是两个常见的需求,同时也是开发者必须掌握的重要技能。 1. **文件上传** 文件上传功能在Struts2中通过`Struts2`提供的插件来实现,主要依赖于`Apache Commons ...

    commons fileupload实现文件上传的实例代码

    **借助Commons FileUpload组件实现文件上传** Apache Commons FileUpload组件简化了文件上传的处理过程。首先,你需要在项目中引入两个JAR包:`commons-fileupload.jar`和`commons-io.jar`。然后,在Servlet中,你...

    ajax实现文件上传

    通过这种方式,不仅能够保持页面的非阻塞性质,还能够有效处理文件上传过程中可能出现的各种情况,从而提供良好的用户体验。此外,本文还提供了具体的代码示例,帮助读者更好地理解和实现这一功能。虽然 AJAX 为 Web...

    jquery.form.js + php ajax提交,包含图片文件上传实例

    利用 jquery.form.js插件,php提交信息,ajax提交,里面包含了上传文件的类,以及生成缩略图,保存到数据库省略了这一步,大家可以根据自己的项目进行修改。前后台大家自行完善,这是一个实例。

    ASP上传文件实例

    在这个"上传实例"中,你可能会发现一个基本的ASP文件上传脚本,通过学习和理解这个实例,你可以了解ASP如何处理文件上传,并以此为基础构建自己的上传功能。不过,记得去除实例中不必要的代码,使其更加简洁和高效。

    腾讯云文件上传教程及资源

    - **表单提交**: 在Web应用中,文件上传通常通过HTML `<form>` 元素的 `enctype="multipart/form-data"` 属性实现。用户选择文件后,表单会被提交到服务器。 - **Java Servlet**: 服务器端,我们需要一个Servlet来...

Global site tag (gtag.js) - Google Analytics