`

在程序中实现<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; 
  }

相关推荐

    实现Struts上传多个文件

    &lt;form-property name="file2" type="org.apache.struts.upload.FormFile"/&gt; &lt;form-property name="file3" type="org.apache.struts.upload.FormFile"/&gt; &lt;form-property name="file4" type="org.apache.struts....

    struts2实现上传

    在表单页面(例如`upload.jsp`)中,使用Struts2的`&lt;s:file&gt;`标签来创建文件上传输入框: ```jsp &lt;s:form action="upload" enctype="multipart/form-data"&gt; &lt;s:file name="file" label="选择文件"/&gt; &lt;s:submit ...

    struts实现上传无乱码

    &lt;form action="upload.action" method="post" enctype="multipart/form-data"&gt; &lt;input type="file" name="uploadFile" /&gt; &lt;input type="submit" value="上传" /&gt; &lt;/form&gt; ``` 最后,当用户提交表单后,Struts会...

    java实现文件上传

    在Java编程环境中,实现文件上传是一项常见的任务,特别是在构建Web应用程序时。文件上传功能允许用户通过Web界面上传本地文件到服务器,这对于数据交换、图片上传、文档共享等场景至关重要。在本篇中,我们将深入...

    java上传文件的实现,基于SpringMVC框架.zip

    &lt;form action="/upload" method="post" enctype="multipart/form-data"&gt; &lt;input type="file" name="file"&gt; &lt;button type="submit"&gt;上传&lt;/button&gt; &lt;/form&gt; &lt;/body&gt; &lt;/html&gt; ``` 至此,一个简单的基于SpringMVC的...

    struts文件上传.pdf

    &lt;form action="upload" method="post" enctype="multipart/form-data"&gt; &lt;html:file property="coverImage" /&gt; &lt;input type="submit" value="Upload" /&gt; &lt;/form&gt; &lt;/body&gt; &lt;/html&gt; ``` 通过以上步骤,我们可以...

    SpringMVC-Upload.zip_springmvc upload_基于SpringMVC的下载功能的实现

    在本文中,我们将深入探讨如何在SpringMVC框架中实现文件上传和下载的功能。SpringMVC是Spring框架的一部分,它为构建Web应用程序提供了一个模型-视图-控制器(MVC)架构。通过使用SpringMVC,我们可以轻松地处理...

    struts+spring文件上传大小限制.rar

    &lt;form-property name="fileField" type="org.apache.struts.upload.FormFile"/&gt; &lt;/form-bean&gt; &lt;controller maxSize="1048576" /&gt; &lt;/controller&gt; ``` 在上述配置中,`maxSize`属性值为1048576字节(1MB)。...

    文件的上传下载

    在IT行业中,文件的上传和下载是Web应用中不可或缺的功能,尤其在数据交换、资源共享以及信息存储等方面扮演着重要角色。下面将详细讲解文件上传下载的相关知识点,包括Struts框架下的配置以及文件上传的实现。 ...

    Spring MVC upload/download file(注释和非注释实现)

    &lt;form action="/upload" method="post" enctype="multipart/form-data"&gt; &lt;input type="file" name="file" id="file"&gt; &lt;button type="submit"&gt;上传文件&lt;/button&gt; &lt;/form&gt; ``` #### 3. 创建控制器 使用`@...

    JSP Struts配置文件详解

    在Struts配置文件中,`&lt;controller&gt;`元素用于配置ActionServlet,它是Struts框架的核心组件之一,负责接收客户端请求,并根据配置转发给相应的Action。具体属性如下: - **@bufferSize**:指定上传文件的输入缓冲区...

    文件上传组件(jsp)

    &lt;param-name&gt;upload-directory&lt;/param-name&gt; &lt;param-value&gt;/path/to/your/upload/directory&lt;/param-value&gt; &lt;/init-param&gt; &lt;/filter&gt; &lt;filter-mapping&gt; &lt;filter-name&gt;FileUploadFilter&lt;/filter-name&gt; &lt;url-...

    FileUpload组件使用方法.docx

    本文将详细介绍如何使用FileUpload组件来实现在Servlet中的文件上传功能。 首先,导入必要的库,包括Servlet相关的API以及Commons FileUpload的依赖。在Java代码中,你需要在类路径下包含`commons-fileupload`和`...

    webwork2.2.7在action中利用commons-fileupload.jar进行上传或直接读取文件流的配置与源代码及实例详解

    &lt;param-name&gt;upload-maxFileSize&lt;/param-name&gt; &lt;param-value&gt;10485760&lt;/param-value&gt; &lt;!-- 10MB --&gt; &lt;/init-param&gt; &lt;!-- ... --&gt; &lt;/servlet&gt; ``` 接下来,在Action类中,我们需要处理文件上传的请求。首先,...

    springMVC上传下载

    在Java开发中,SpringMVC是一个非常流行的Web框架,它为构建基于模型-视图-控制器(MVC)模式的应用程序提供了强大支持。当我们需要在Web应用中实现文件的上传和下载功能时,SpringMVC提供了简洁且强大的API来处理...

    用Struts上传多个文件的方法(含源码)

    在Struts中,文件上传是通过一个名为`org.apache.struts.upload.FormFile`的类来实现的,这个类是Struts 1.x版本中的文件上传组件。 在标题和描述中提到的"用Struts上传多个文件的方法",主要是指在Struts框架下...

    struts 上传组件使用方法

    在Struts的配置文件中,需要为处理文件上传的Action添加一个`&lt;form-bean&gt;`标签,指定`multipart/form-data`编码类型,例如: ```xml &lt;form-bean name="uploadForm" type="com.yourpackage.UploadForm"&gt; &lt;form-...

    spring mvc 初始环境搭建,前后台数据的交互,文件上传

    &lt;form action="/upload" method="post" enctype="multipart/form-data"&gt; &lt;input type="file" name="file" /&gt; &lt;button type="submit"&gt;上传&lt;/button&gt; &lt;/form&gt; ``` **3. 处理文件上传** 使用`@RequestParam`...

    jsp结合servlet实现文件上传

    本知识点主要聚焦于如何利用JSP和Servlet实现文件上传功能,这是一个在Web应用中非常实用的功能,例如用户在网站上提交简历、上传图片等。 首先,我们需要了解文件上传的基本原理。HTTP协议本身不支持文件上传,但...

Global site tag (gtag.js) - Google Analytics