当前位置: 首页 > news >正文

网站建设的知识点有哪些网站用户粘度

网站建设的知识点有哪些,网站用户粘度,火车头wordpress5.0发布模块,专门做考研的网站文章目录一.单文件下载1.简单理解文件下载2.单文件下载的具体代码实现3.测试4.单文件下载整体代码二.多文件批量下载#xff08;多个文件合成一个压缩包下载#xff09;1.多文件下载的实现方式#xff0c;这里使用了ZipOutputStream2.具体代码实现3.测试4.文件批量下载… 文章目录一.单文件下载1.简单理解文件下载2.单文件下载的具体代码实现3.测试4.单文件下载整体代码二.多文件批量下载多个文件合成一个压缩包下载1.多文件下载的实现方式这里使用了ZipOutputStream2.具体代码实现3.测试4.文件批量下载多文件合成一个压缩包完整代码一.单文件下载 1.简单理解文件下载 文件下载是从服务器下载到本地电脑。 文件下载的原理首先通过IO流将服务器的文件读取到内存里只有将数据读到内存电脑才可以操作数据读取后文件数据存放在内存中将内存中的数据通过网络发送给本地客户端的浏览器。本地客户端的浏览器接受数据并在本地生成对应的文件。 2.单文件下载的具体代码实现 接受请求参数 path是文件在服务器的路径通常路径会存在sql表里通过查表获取这里是为了测试HttpServletResponse 要通过HttpServletResponse来实现客户端和服务器通信的响应部分将响应头和文件数据返回后端。 RequestMapping(/download)public void downLoad(String path, HttpServletResponse response) throws UnsupportedEncodingException {设置响应头信息规定死的 响应头信息代表的含义 ContentType ,互联网媒体类型也叫做MIME类型Http在传输数据对象时会为他们打上MIME的数据格式标签区分数据类型 常见ContentType,text/html ,HTML文本application/json 键值对的json数据格式application/octet-stream 是一种二进制数据流的文件类型通常用于文件传输。它表示文件中包含的数据是二进制数据而不是文本。由于它是一种通用类型因此它可用于处理各种类型的文件如图像音频和视频文件。Content-Disposition 指定响应头的展示方式主要体现在 * 指定下载文件的文件名和保存方式。如attachment; filename URLEncoder.encode(fileName, UTF-8)中的filenamexxx指定了后的文件的文件名和格式 * 控制浏览器的行为。如attachment; filename URLEncoder.encode(fileName, UTF-8)的attachment,指定浏览器以附件的形式展示文件即指定浏览器下载文件而不是打开文件如果设置为inline则是在浏览器打开文件。如果没有filename 浏览器会出现保存为的对话框。常见值 Content-Disposition: inline Content-Disposition: attachment Content-Disposition: attachment; filenameXXX* 设置响应头代码response.reset();response.setHeader(Content-Disposition,attachment; filename URLEncoder.encode(fileName, UTF-8));response.setCharacterEncoding(utf-8);//设置编码格式为utf-8response.setContentLength((int)file.length());//响应数据长度response.setContentType(application/octet-stream);通过IO流读取文件并将数据返回给浏览器 try(BufferedInputStream bisnew BufferedInputStream(new FileInputStream(file));OutputStream outputStream response.getOutputStream();)是try-with-resource的语法格式作用为try块退出时会自动调用在()中的bisoutputStream资源的close()方法自动关闭IO资源。不用手动关闭了代码书写复杂度降低 获取response的输出流OutputStream,从文件的InputStream输入流读取数据到内存然后通过输出流写入。 代码示例 try(BufferedInputStream bisnew BufferedInputStream(new FileInputStream(file));OutputStream outputStream response.getOutputStream();){byte[] bytes new byte[1024];int i0;while((ibis.read(bytes))!-1){outputStream.write(bytes,0,i);}}catch (Exception e){e.printStackTrace();}3.测试 4.单文件下载整体代码 RequestMapping(/download)public void downLoad(String path, HttpServletResponse response) throws UnsupportedEncodingException {File filenew File(path);String fileName file.getName();response.reset();response.setHeader(Content-Disposition,attachment; filename URLEncoder.encode(fileName, UTF-8));response.setCharacterEncoding(utf-8);response.setContentLength((int)file.length());response.setContentType(application/octet-stream);System.out.println(filename:fileName);try(BufferedInputStream bisnew BufferedInputStream(new FileInputStream(file));OutputStream outputStream response.getOutputStream();){byte[] bytes new byte[1024];int i0;while((ibis.read(bytes))!-1){outputStream.write(bytes,0,i);}}catch (Exception e){e.printStackTrace();}}二.多文件批量下载多个文件合成一个压缩包下载 1.多文件下载的实现方式这里使用了ZipOutputStream 介绍ZipOutputStream ZipOutputStream使用流程 使用示例 //初始化test.zip是写入压缩包的名称 ZipOutputStream zipOutputStream new ZipOutputStream(new FileOutputStream(test.zip)); //创建一个名称为test.txt新的条目一般压缩包中有很多文件新条目相当于创建新文件 zipOutputStream.putNextEntry(new ZipEntry(test.txt)); //写入具体内容 zipOutputStream.write(Hello World.getBytes()); //关闭条目 zipOutputStream.closeEntry(); //关闭整体压缩输出流 zipOutputStream.close();2.具体代码实现 模拟选中多文件可以通过前端传 ListString pathListnew ArrayList();pathList.add(xxx.txt);pathList.add(xxx.txt);pathList.add(xxx.txt);设置响应头 response.reset();response.setHeader(Content-Disposition,attachment; filename URLEncoder.encode(1.zip, UTF-8));response.setCharacterEncoding(utf-8);初始化ZipOutputStream try(ZipOutputStream zipOutputStreamnew ZipOutputStream(new BufferedOutputStream(response.getOutputStream())))遍历List从中读取要批量下载的文件路径 for(String pathName:pathList)对每个批量下载的文件都在zipOutputStream(压缩包中创建对应的条目及对应的文件)putNextEntry(new ZipEntry(fileName))创建和下载文件相同名称的文件条目。把每个下载的文件内容写入到zipOutputStream中的条目中关闭条目然后循环。 File file new File(pathName);String fileNamefile.getName();zipOutputStream.putNextEntry(new ZipEntry(fileName));try(BufferedInputStream bisnew BufferedInputStream(new FileInputStream(file))){byte[] bytes new byte[1024];int i0;while((ibis.read(bytes))!-1){zipOutputStream.write(bytes,0,i);}zipOutputStream.closeEntry(); 3.测试 4.文件批量下载多文件合成一个压缩包完整代码 GetMapping(/downloadlist)public void downLoadList( HttpServletResponse response ) throws UnsupportedEncodingException {ListString pathListnew ArrayList();pathList.add(xxx.txt);pathList.add(xxx.txt);pathList.add(xxx.txt);response.reset();response.setHeader(Content-Disposition,attachment; filename URLEncoder.encode(1.zip, UTF-8));response.setCharacterEncoding(utf-8);response.setContentType(application/octet-stream);try(ZipOutputStream zipOutputStreamnew ZipOutputStream(new BufferedOutputStream(response.getOutputStream()))){for(String pathName:pathList){File file new File(pathName);String fileNamefile.getName();zipOutputStream.putNextEntry(new ZipEntry(fileName));try(BufferedInputStream bisnew BufferedInputStream(new FileInputStream(file))){byte[] bytes new byte[1024];int i0;while((ibis.read(bytes))!-1){zipOutputStream.write(bytes,0,i);}zipOutputStream.closeEntry();}catch (Exception e){e.printStackTrace();}}}catch (Exception e){e.printStackTrace();}}
http://www.dnsts.com.cn/news/228061.html

相关文章:

  • 做网站主机要选好取消Wordpress外链转内链
  • 什么叫门户类网站广州注册公司地址要求
  • 牛商网网站后台万网网站备案管理
  • 东莞微网站建设报价中国古建筑工程网
  • 网站数据库有哪些仿站网站
  • 怎样使用wordpress主题济南建站优化
  • 用cms做网站的缺点node做网站后台
  • 做商城网站要多少钱线上营销推广公司
  • php网站地图牛仔裤网站设计
  • 网站建设预算申请有关于做茗茶的网站
  • 简述网站建设的五类成员开发公司以家装大礼包引诱购房人购房
  • 北京南站停车场收费标准中关村网站建设
  • 医院网站cms百度微建站
  • 微信网站响应式网站网页设计个人网站下载
  • 室内平面图在线制作网站wordpress搬家简书
  • 肇庆市网站建设平台做设计.不抠图网站
  • 网站不能正常显示出现后台代码如何管理网站内容
  • 网站建设安全制度图片可以建站的网站
  • 淘宝网站短链接怎么做做商城网站一般用什么
  • 河北省建设工程招投标管理网站wordpress获取新密码
  • 免费下载ppt模板网站哪个好福州百度seo排名
  • 郑州的网站公司哪家好专业建站公司报价单
  • 网站显示速度的代码是什么意思网站建设 官网
  • 网站设计制作收费明细淘宝网店运营
  • 葫芦岛建设信息网站拐角型网站
  • 杭州上城区建设局网站旅游品牌推广方案
  • 搜狐快站官网莆田做网站建设
  • 网站播放图片多大合适wordpress和论坛整合
  • 如何进行网站优化设计电台网站建设要求
  • 网络工程是冷门专业吗百度seo哪家公司好