• 文件上传下载


    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,点开后,只能是显示一张图片到当前浏览器,根本不能实现,文件的下载,所以。这个想法本身因为平台的原因,变得不合理。

  • 相关阅读:
    svn随笔
    关于PHP调用IE的Com组件的一些要求
    Bash总结
    Firefox常用扩展
    proftpd的一些简单配置
    lua积累
    backbone.js源码解析:extend、Backbone.View
    Ubuntu 12.04LTS 安装VMwareWorkstation
    关于安装Ubuntu不将mbr写入grub的经验
    .NET6发布到linux
  • 原文地址:https://www.cnblogs.com/letben/p/5185320.html
Copyright © 2020-2023  润新知