2020-03-31

(一)文件下载的概述


一、什么是文件下载

    文件下载:将服务器上的一个文件,通过流写入到客户端上


二、为什么学习文件下载

    很多应用包含有文件下载的功能

        音乐的下载

        应用的下载


三、文件下载的方式


1、使用超链接的方式实现文件的下载

超链接

注意:超链接的方式,如果浏览器不能识别这种格式的文件,会提示下载,如果支持该格式的文件,会直接打开(例如压缩文件它不支持,也打不开,就会让你下载,如果是一张图片的话,浏览器是支持的,就会直接在页面上显示了)


2、通过手动编写代码的方式实现文件的下载

设置两个头和一个流

Content-Type:文件的MIME类型

Content-Disposition:浏览器支持该格式的文件时,不直接打开,也提示下载

设置代表该文件的输入流,(因为输出流是固定的,它是由Response去生成的,就是response.getOutputStream())


(二)超链接方式实现文件下载


一、代码实现

二、局限性


如果浏览器支持这个格式的文件就会直接打开,如果不支持这个格式的文件才会提示下载


(三)手动编码的方式实现文件下载


一、文件下载的页面

(四)中文文件的下载


一、中文文件的下载会出现乱码问题


1、不同的浏览器对中文文件的下载,采用的编码是不一样的

IE浏览器采用的是URL编码

Firefox浏览器采用的是Base64编码


2、判断客户端使用的浏览器的类型

User-Agent请求头可以获得客户端浏览器信息


二、代码实现

(五)给定目录下的文件下载


一、案例需求描述

    给定一个目录(这个目录可以是任意盘符下的任意路径,这个路径下有多少级目录、每级目录中有多少个文件都是未知的),将这个路径中的文件显示到页面上,在页面上给每个文件都提供一个响应下载的链接,当点击这个链接的时候,对该文件进行下载


二、案例分析


1、分析过程——树形结构的遍历

(1)树:

有且仅有一个根节点

在根节点下可以有任意个子节点

没有子节点的节点称为叶子节点

(2)树形结构的遍历

广度优先遍历1 2 3 4 5 6 7 8 9 10

广度递归

广度非递归

深度优先遍历1 2 5 10 6 3 7 4 8 9

深度递归

深度非递归

2、队列:FIFO(先进先出)

    创建一个队列

    先将根节点入队

    将根节点出队,遍历根节点下的所有子节点,如果有子节点,再将子节点入队

    依此类推


三、文件列表显示

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,902评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,037评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,978评论 0 332
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,867评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,763评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,104评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,565评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,236评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,379评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,313评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,363评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,034评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,637评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,719评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,952评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,371评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,948评论 2 341

推荐阅读更多精彩内容

  • 1. Nginx负载均衡配置实战 1.1 Nginx负载均衡反向代理相关实践 1.1.1 实现为WWW服务代理 (...
    阿丧小威阅读 411评论 0 0
  • 作业: 文件上传 (一)文件上传的概述 一、什么是文件上传文件上传:将本地的文件通过流写入到服务器的过程 二、为什...
    常樂_b00d阅读 145评论 0 0
  • 文件上传 (一)文件上传的概述 一、什么是文件上传文件上传:将本地的文件通过流写入到服务器的过程 二、为什么要学习...
    H_5a8d阅读 505评论 0 0
  • 哈喽,哈喽 本文首发于公众号:十三爱学习。 受到一位粉丝需要帮忙下载道客巴巴文档的启发 今天想跟大家分享一下百度文...
    十三爱学习阅读 560评论 0 1
  • 从小到大,成长是必然的是不可逆的是绝对的。 刚刚表妹微我,问我回家过年不,我说不回。她说,不回家你一个人太孤单了。...
    呦呦鹿鸣夜见月阅读 66评论 0 1