zoukankan      html  css  js  c++  java
  • Android下的应用编程——用HTTP协议实现文件上传功能

    【文章作者】曾健生

    【作者邮箱】zengjiansheng1@126.com

    【作者QQ】190678908

    【作者MSN】zengjiansheng1@hotmail.com

    【作者博客】blog.csdn.net/newjueqi

    *******************************************************************************

          在Android的客户端编程中(特别是SNS 类型的客户端),经常需要实现注册功能Activity,要用户输入用户名,密码,邮箱,照片后注册。但这时就有一个问题,在HTML中用form表单就能实现如上的注册表单,需要的信息会自动封装为完整的HTTP协议,但在Android中如何把这些参数和需要上传的文件封装为HTTP协议呢?

    我们可以先做个试验,看一下form表单到底封装了什么样的信息。

    第一步:编写一个Servlet,把接收到的HTTP信息保存在一个文件中,代码如下:

        public void doPost(HttpServletRequest request, HttpServletResponse response)

               throws ServletException, IOException {

     

           //获取输入流,是HTTP协议中的实体内容

           ServletInputStream  sis=request.getInputStream();

        

           //缓冲区

           byte buffer[]=new byte[1024];

         

           FileOutputStream fos=new FileOutputStream("d://file.log");

         

           int len=sis.read(buffer, 0, 1024);

         

           //把流里的信息循环读入到file.log文件中

           while( len!=-1 )

           {

               fos.write(buffer, 0, len);

               len=sis.readLine(buffer, 0, 1024);

           }

         

           fos.close();

           sis.close();

         

        }

    第二步:实现如下图1的的表单页面,生成一个注册表单,提交到Servlet中

    \" src=

                

                                                图1

    详细的代码如下:

    <form action="servlet/ReceiveFile" method="post" enctype="multipart/form-data">

        第一个参数<input type="text" name="name1"/> <br/>

        第二个参数<input type="text" name="name2"/> <br/>

        第一个上传的文件<input type="file" name="file1"/> <br/>

        第二个上传的文件<input type="file" name="file2"/> <br/>

        <input type="submit" value="提交">

    </form>

    注意了,由于要上传附件,所以一定要设置enctype为multipart/form-data,才可以实现附件的上传。

    第三步:填写完信息后按“提交”按钮后,在D盘下查找file.log文件用记事本打开,数据如下:

    -----------------------------7d92221b604bc

    Content-Disposition: form-data; name="name1"

    hello

    -----------------------------7d92221b604bc

    Content-Disposition: form-data; name="name2"

    world

    -----------------------------7d92221b604bc

    Content-Disposition: form-data; name="file1"; filename="C:/2.GIF"

    Content-Type: image/gif

    GIF89a

  • 相关阅读:
    IP 封包中的 Header 的 Protocol 字段的 值
    二叉树算法题
    PageFile Swap File
    Quick sort C# code(2)
    VS中Sos调试扩展简介 (转帖)
    BUG: "Old format or invalid type library" error when automating Excel on 64 bit server 2008
    Sql server 2005 connection string
    让IE支持自己的协议
    偶然间,我发现了一个秘密能使盗版的windowsXP变成正版
    Excel C# Automation
  • 原文地址:https://www.cnblogs.com/lzhitian/p/2424017.html
Copyright © 2011-2022 走看看