`

在程序中实现<form-upload>

 
阅读更多
private void uploadFile()
  {
    String end = "\r\n";
    String twoHyphens = "--";
    String boundary = "*****";
    try
    {
      URL url =new URL(actionUrl);
      HttpURLConnection con=(HttpURLConnection)url.openConnection();
      /* 允许Input、Output,不使用Cache */
      con.setDoInput(true);
      con.setDoOutput(true);
      con.setUseCaches(false);
      /* 设定传送的method=POST */
      con.setRequestMethod("POST");
      /* setRequestProperty */
      con.setRequestProperty("Connection", "Keep-Alive");
      con.setRequestProperty("Charset", "UTF-8");
      con.setRequestProperty("Content-Type",
                         "multipart/form-data;boundary="+boundary);
      /* 设定DataOutputStream */
      DataOutputStream ds =
        new DataOutputStream(con.getOutputStream());
      ds.writeBytes(twoHyphens + boundary + end);
      ds.writeBytes("Content-Disposition: form-data; " +
                    "name=\"file1\";filename=\"" +
                    newName +"\"" + end);
      ds.writeBytes(end);  

      /* 取得文件的FileInputStream */
      FileInputStream fStream = new FileInputStream(uploadFile);
      /* 设定每次写入1024bytes */
      int bufferSize = 1024;
      byte[] buffer = new byte[bufferSize];

      int length = -1;
      /* 从文件读取数据到缓冲区 */
      while((length = fStream.read(buffer)) != -1)
      {
        /* 将数据写入DataOutputStream中 */
        ds.write(buffer, 0, length);
      }
      ds.writeBytes(end);
      ds.writeBytes(twoHyphens + boundary + twoHyphens + end);

      /* close streams */
      fStream.close();
      ds.flush();
     
      /* 取得Response内容 */
      InputStream is = con.getInputStream();
      int ch;
      StringBuffer b =new StringBuffer();
      while( ( ch = is.read() ) != -1 )
      {
        b.append( (char)ch );
      }
      /* 将Response显示于Dialog */
      showDialog(b.toString().trim());
      /* 关闭DataOutputStream */
      ds.close();
    }
    catch(Exception e)
    {
      showDialog(""+e);
    }
  }

分享到:
评论
1 楼 白云天 2012-10-09  
用手机中缺省的程序打开文件的代码:

/* 在手机上打开文件的method */
  private void openFile(File f)
  {
    Intent intent = new Intent();
    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    intent.setAction(android.content.Intent.ACTION_VIEW);
   
    /* 调用getMIMEType()来取得MimeType */
    String type = getMIMEType(f);
    /* 设定intent的file与MimeType */
    intent.setDataAndType(Uri.fromFile(f),type);
    startActivity(intent);
  }

  /* 判断文件MimeType的method */
  private String getMIMEType(File f)
  {
    String type="";
    String fName=f.getName();
    /* 取得扩展名 */
    String end=fName.substring(fName.lastIndexOf(".")+1,fName.length()).toLowerCase();
   
    /* 按扩展名的类型决定MimeType */
    if(end.equals("m4a")||end.equals("mp3")||end.equals("mid")||end.equals("xmf")||end.equals("ogg")||end.equals("wav"))
    {
      type = "audio";
    }
    else if(end.equals("3gp")||end.equals("mp4"))
    {
      type = "video";
    }
    else if(end.equals("jpg")||end.equals("gif")||end.equals("png")||end.equals("jpeg")||end.equals("bmp"))
    {
      type = "image";
    }
    else if(end.equals("apk"))
    {
      /* android.permission.INSTALL_PACKAGES */
      type = "application/vnd.android.package-archive";
    }
    else
    {
      type="*";
    }
    /*如果无法直接打开,就跳出软件清单给使用者选择 */
    if(end.equals("apk"))
    {
    }
    else
    {
      type += "/*"; 
    }
    return type; 
  }

相关推荐

    ssh(structs,spring,hibernate)框架中的上传下载

     文件数据存储在Blob类型的FILE_CONTENT表字段上,在Spring中采用OracleLobHandler来处理Lob字段(包括Clob和Blob),由于在程序中不需要引用到oracle数据驱动程序的具体类且屏蔽了不同数据库处理Lob字段方法上的...

    Apache Commons fileUpload实现文件上传

    List&lt;FileItem&gt; items = upload.parseRequest(request); Iterator&lt;FileItem&gt; itr = items.iterator(); while (itr.hasNext()) { FileItem item = (FileItem) itr.next(); //检查当前项目是普通表单项目还是上传...

    PHP基础教程 是一个比较有价值的PHP新手教程!

    在许多人的无私奉献下以及这种语言本身的源代码自由性质,它演变成为一种特点丰富的语言,而且现在还在成长中。 PHP虽然很容易学习,但是速度上比mod_perl(植入web服务器的perl模块)慢。现在有了可以与mod_perl...

    node-express-file-form-upload-demo:这是关于如何实现创建将用户的文件提交到Node.js应用程序服务器上的临时文件夹的Web表单的博客文章的一部分,

    运行该应用程序我在该项目中包括了nodemon软件包,因此要在您的本地主机上运行此解决方案,只需键入以下代码。 当您进行更改时,nodemon会自动为您重新运行它-neato,是吗? nodemon App.js 查看/测

    艾恩ASP无组件上传类(An-Upload) v11.03.25.rar

    艾恩ASP无组件上传类,不敢夸口说多完美,但能实现基本的功能.包括提取表单数据、上传到不同文件夹、保存到 数据库(上传和保存表单可同时进行)、限制上传扩展名、限制上传大小、选择文件保存类型(原文件名和时间...

    Dropzone.js实现文件拖拽上传实例

    &lt;form id="mydropzone" action="/upload.php" class="dropzone"&gt;&lt;/form&gt; 就这样,Dropzone会自动找到.dropzone的表单form元素,并且通过action属性,上传到后台接收文件的程序,如upload.php,就像接受一个很普通的...

    基于php实现的哈希算法的人脸检索

    ### 详细功能描述: - 设计一个有效的hash算法用于人脸检索;...- upload_file.php 选择上传匹配显示程序 - jpg.hph 读取jpg文件夹所有图像计算转化成PHA值与相对于图像一起存入数据库 (导入样本进数据库)

    web真实进度条(上传时间,大小,百分比)

    通过asp.net缓存机制实现,上传的过程中,不断的将上传信息往缓存里面写,直到文件上传完成,而在另外一个通过guid获取缓存的信息,信息包括你想要的信息,比如上传了多少字节、消耗了多长时间等。 程序核心页面 ...

    艾恩ASP_文件上传组件anupload

    艾恩ASP无组件上传组件,不敢夸口说多完美,但能实现基本的功能.包括提取表单数据、上传到不同文件夹、保存 到数据库(上传和保存表单可同时进行)、限制上传扩展名、限制上传大小、选择文件保存类型(原文件名和时间...

    servlet3.0实现文件上传——demo1.zip

    1、在上传文件前请在计算机C盘新建一个名为“upload”的文件夹,否则会出现如下异常:java.io.IOException: The temporary upload location [C:\upload] is not valid 2、请不要使用360安全浏览器演示本功能,否则会...

    servlet3.0文件上传 01.zip

    1、在上传文件前请在计算机C盘新建一个名为“upload”的文件夹,否则会出现如下异常:java.io.IOException: The temporary upload location [C:\upload] is not valid 2、请不要使用360安全浏览器演示本功能,否则会...

    大名鼎鼎SWFUpload- Flash+JS 上传

    “If you return 'true' or do not return any value then the upload proceeds.”,从中可以看到既定的设计是当不返回任何值的时候应该等同于返回true,但是笔者在开发中发现必须明确返回值,否则上传进程将停止...

    ASP无组件上传类

    一、简介 自从接触ASP就开始接触上传,看过一些上传类,但是总感觉封装的还是不够简单... Upload.openProcesser=false '禁止进度条功能,如果启用,需配合客户端程序 Upload.GetData() '获取并保存数据,必须调用本方法

    xheditor-1.1.14

    参数值:表单提交按钮的ID值,默认在form表单上绑定submit以同步结果 说明:通过本参数,在非标准submit提交环境下,比如AJAX提交,可以由用户点击提交按钮以触发编辑器最新值的同步 备注:v1.1.7新添加 onPaste:...

    Spring中文帮助文档

    9.5.5. &lt;tx:advice/&gt; 有关的设置 9.5.6. 使用 @Transactional 9.5.7. 事务传播 9.5.8. 通知事务操作 9.5.9. 结合AspectJ使用 @Transactional 9.6. 编程式事务管理 9.6.1. 使用TransactionTemplate 9.6.2. ...

    PHP+jQuery+Ajax实现多图片上传效果

    我们在页面上放置一个form表单,使用post提交到后台php处理程序upload.php,注意enctype属性设置要支持文件上传。#preview用来显示上传完毕后的图片。关于css样式设置本文不加说明,请参照下载包的源码。 代码如下:...

    J2EE实验指导书*******

    1、创建web过滤器实现form表单post提交的中文乱码 32 2、配置中文乱码过滤器 32 3、创建登录验证的过滤器并配置 32 四、实验报告 32 实验十四 JSP+Servlet+JavaBean开发模式 33 一、实验目的 33 二、实验环境 33 三...

    Spring API

    9.5.5. &lt;tx:advice/&gt; 有关的设置 9.5.6. 使用 @Transactional 9.5.7. 事务传播 9.5.8. 通知事务操作 9.5.9. 结合AspectJ使用 @Transactional 9.6. 编程式事务管理 9.6.1. 使用TransactionTemplate 9.6.2. ...

    php在线解压ZIP文件的方法

    在PHP的函数库中只找到了个ZLIB的函数还跟压缩有点关系,但是使我失望的是他没能解ZIP的文件,但最后还是让我找到了解决的方法,就是通过PHP的程序执行函数来实现这个功能,因为现在能解ZIP文件的东西实在是太多啦,你...

    PHP实现接收二进制流转换成图片的方法

    这里实现php 接收二进制流转换成图片,所使用的图片类imageUpload.php如下: &lt;?php /** * 图片类 * @version 1.0 * * PHP默认只识别application/x-www.form-urlencoded标准的数据类型。 * 因此,对型如text/xml ...

Global site tag (gtag.js) - Google Analytics