zoukankan      html  css  js  c++  java
  • 文件上传下载

    2015.12.10 文件上传下载

    Application/x-www-form-urlencoded

    只需要在input里面的type里面设置 为fileenctype="multipart/form-data"

    举例:

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

    <input type="file" name=""/>

    </form>

     

    默认的 enctype是 application/x-www-form-urlencoded 是表单形式提交。

     

    这里来一个答疑。

    对于一个表单来说,上传有多余两种方式,有一种在报错的时候告诉我是一个mixed stream

    但是对于我们现在的知识来说,需要掌握两种,一种是默认的表单方式:表现形式是:enctype="application/x-www-form-urlencoded"。另一种是可以传递文件的复合数据形式:enctype="multipart/form-data"

    对于符合文件的解析来说,

    1、首先需要创建一个   硬盘文件项工厂

    DiskFileItemFactory dfif = new DiskFileItemFactory();

    2、上传文件控制层

    ServletFileUpload sfu = new ServletFileUpload(dfif);

     

    3、然后利用 上传文件控制层 解析 表单发来的请求

    sfu.parseRequest(request);

    解析的结果是一个 文件项列表

    List<FileItem> fileItems = sfu.paresRequest(request);

    然后遍历。

    对于文件项来说有两种分类:是表单域(可简单理解为非文件) 或者 是非表单域(简单理解为文件)

    是表单域的话:

    for(FileItem fileitem:fileItems){
        If(fileitem.isFormField){//是表单域
        String fileName = fileitem.getFieldName();
        String fileValue = fileItem.getString();
        Syso(fileName+fileValue);
        }else{//是非表单域
        String fileName = fileitem.getName();
        
        }
    }

    文件上传这里需要两个包。要记得commons-fileupload-1.2.2.jar commons-io-2.0.1.jar

     

    下载真不是那么简单,这个想想就完了,在android里面只要请求一个路径就能下载,但是其实在javaweb里面,不能那样,为什么呢?假设都是下载一张图片,在android里面,请求就能下载,但是在浏览器这段,假设请求的一个超级链接有一个url,点开后,只能是显示一张图片到当前浏览器,根本不能实现,文件的下载,所以。这个想法本身因为平台的原因,变得不合理。

  • 相关阅读:
    MUI DtPicker 显示自定义日期
    Windows10更新后,远程桌面无法登录服务器 提示远程桌面协议 CredSSP 出现漏洞
    微信Access Token 缓存方法
    在Windows7/8/10上,安装IIS
    启明星系统微信接口配置
    c#使用QQ邮箱的SSL收发邮件
    使用ASP.NET+Jquery DataTables的服务器分页
    总是容易忘记:enum、int、string之间的快速转换
    Chrome浏览器导出pdf时,隐藏链接HREF
    SQL Builder 1.04
  • 原文地址:https://www.cnblogs.com/letben/p/5185320.html
Copyright © 2011-2022 走看看