上传:

文件上传,通常是使用form表单提交,关键是设置enctype="multipart/form-data",然后submit就行了。

<form  name="fileForm" id="fileForm"  action="${ctx }/resource/resUpload.do" enctype="multipart/form-data" method="post">

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

</form>

至于后台java端的处理,有很多方式,这里提供一个springmvc处理文件上传方法:http://blog.csdn.net/a1314517love/article/details/24183273

使用form表单提交,会发生页面跳转。这是让人有点小不爽的。

下面介绍一种方法,使用ajax动态上传文件,页面不会跳转。

使用jquery-form.js组件,页面中先引入jquery.js,然后引入jquery-form.js,顺序不能错(用过jQuery的应该都知道)。

 1 function fileFormSubmit(){
 2     var ajax_option={
 3          target : '#output',
 4          beforeSubmit : function(){// 提交前的调用的方法
 5
 6                  },
 7          success : function(formData, jqForm, options){// 提交后的回调函数
 8
 9                  },
10           // url : url,
11           type : 'POST',
12          dataType : "json",
13 //          clearForm : true,
14          resetForm : true,
15          timeout : 3000
16     };
17     // 提交form表单
18     $("#fileForm").ajaxSubmit(ajax_option);
19 }    

详细的解释,可以参考一下http://www.cnblogs.com/sydeveloper/p/3754637.html

下载:

下载功能主要是java端编程。

首先这是response的一些属性

1 //设置文件ContentType类型,这样设置,会自动判断下载文件类型
2  response.setContentType("multipart/form-data");
3 String filename = "";
4 //防止中文名称乱码,将名称转成ISO8859-1编码
5 response.setHeader("Content-Disposition", "attachment;fileName="+new String(filename.toString().getBytes("utf-8"),"ISO8859-1"));

单个文件,处理文件流,直接下载

//要下载的文件的路径
String downfilePath = "";
ServletOutputStream out;  //通过文件路径获得File对象File file = new File(downfilePath);  try {  FileInputStream inputStream = new FileInputStream(file);  //3.通过response获取ServletOutputStream对象(out)  out = response.getOutputStream();  int b = 0;  byte[] buffer = new byte[1024];  while ((b = inputStream.read(buffer)) > -1){  out.write(buffer,0,b);  //4.写到输出流(out)中
            }  inputStream.close();  out.flush();  out.close();  } catch (IOException e) {  e.printStackTrace();  }  

多个文件,压缩成zip文件,再下载

//zip文件生成的路径,例如c:\\zipfile\\ceshi123.zip
String destPath = "";
ZipOutputStream zos = new ZipOutputStream(new FileOutputStream(new File(destPath))); for(String p: paths){File file = new File(p);//压缩文件,将文件放入zos中compressFile(file, zos, "");
}
//关闭流,不然会出问题
zos.close();

private static void compressFile(File file, ZipOutputStream zos, String dir)  throws Exception {  /** * 压缩包内文件名定义 *  * <pre> * 如果有多级目录,那么这里就需要给出包含目录的文件名 * 如果用WinRAR打开压缩包,中文名将显示为乱码 * </pre> */  ZipEntry entry = new ZipEntry(dir + file.getName());  zos.putNextEntry(entry);  BufferedInputStream bis = new BufferedInputStream(new FileInputStream(  file));  int count;  byte data[] = new byte[1024];  while ((count = bis.read(data, 0, 1024)) != -1) {  zos.write(data, 0, count);  }  bis.close();  zos.closeEntry();  }  

这样就会在destPath 对应的目录中生成一个zip文件了,然后单个文件,处理文件流,直接下载。

转载于:https://www.cnblogs.com/du-better/p/5311273.html

j2ee 上传下载 小记相关推荐

  1. 文件上传下载—servlet API实现

    servlet API实现文件上传下载需要的jar包: UploadServlet.java package com.ymw.web.servlet;import java.io.File; impo ...

  2. struts上传word和excel文件到oracle,Struts文件上传,下载,重传,预览

    [Struts2]☆★之文件上传,下载,重传,预览 今日群里一兄弟问我能否给一份struts文件上传下载的例子,因为自己项目比较紧所以想在网上找 些源码给他,但是纵观全网,写的都不是太全,这让新手使用 ...

  3. linux 安装上传文件,linux常用命令(二)文件上传下载及软件安装

    1.上传下载工具安装 (1)WINDOWS 到linux的文件上传及下载: windows下打开secureCRT,通过SSH连到⾄至远程linux主机: 上传下载工具安装命令:yum -y inst ...

  4. 初级版python登录验证,上传下载文件加MD5文件校验

    服务器端程序 import socket import json import struct import hashlib import osdef md5_code(usr, pwd):ret = ...

  5. linux快捷上传下载文件

    借助securtCRT,使用linux命令sz可以很方便的将服务器上的文件下载到本地,使用rz命令则是把本地文件上传到服务器 其中,对于sz和rz的理解与记忆我用了如下的方法(因为很多时候容易搞混): ...

  6. Java中使用FTPClient上传下载

    转自:http://blog.csdn.net/hbcui1984/article/details/2720204 在JAVA程序中,经常需要和FTP打交道,比如向FTP服务器上传文件.下载文件,本文 ...

  7. JSP中的文件操作:数据流、File类、文件浏览、目录操作、上传下载

    ​ 文件可以永久地存储信息,从本质上讲文件就是存放在盘上的一系列数据的集合.应用程序如果想长期保存数据,就必须将数据存储到文件中,这就涉及到文件的操作.而在编写网站应用程序的过程中,有许多地方要对文件 ...

  8. 高可用的Spring FTP上传下载工具类(已解决上传过程常见问题)

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者:宇的季节 cnblogs.com/chenkeyu/p/80 ...

  9. 教你如何实现c#文件上传下载功能

    简单介绍一下c#文件上传下载功能实现. NuGet 安装SqlSugar Model文件下新建 DbContext 类 public class DbContext {public DbContext ...

最新文章

  1. jQuery addClass,removeClass,class属性增删
  2. ubuntu 16.04修复固件刷新失败的LimeSDR-USB V1.4
  3. java web问题
  4. Aop动态代理解决问题
  5. 【转载】JAVA内存模型和线程安全
  6. 让jQuery Tools Scrollable控件在Mobile Web里面支持resize功能
  7. 【转】01.Dicom 学习笔记-DICOM C-Store 消息服务
  8. Python中操作mysql的pymysql模块详解
  9. 微信开发实现一键拨号出现屏蔽问题的解决方案
  10. 相对于其他框架的离子应用开发:它被炒作了吗?
  11. RenderTransformOrigin 的作用
  12. YII2 使用curl请求,返回false
  13. Mysql 正序 空值在后
  14. 什么才是成熟的爱——爱的四个层次
  15. 易考防作弊功能有哪些_浙江考试院发公告,上百名考生考研违规,你可以不努力但不能作弊...
  16. 1125 斐波那契数列
  17. GLM(General Language Model)代码分析
  18. 台式电脑如何修复计算机,台式电脑没有声音了怎么恢复(在家用这两个方法轻松解决)...
  19. keil创建无启动文件及自定义.sct文件的工程
  20. 我也玩android了

热门文章

  1. javascript 数组合并与去重
  2. Html5 小球键盘移动
  3. 关于bash中if语法结构的广泛误解(转)
  4. authorization 传 就跨域_headers中添加允许token,客户端跨域请求问题
  5. python调用图灵api_python调用API实现智能回复机器人
  6. 职场人如何做好「公开表达」,提升个人影响力?
  7. 眨眼快奔四了,大家的存款都有多少啊?
  8. 男人在最穷、最落魄,事业低谷期的时候最需要的是什么?
  9. 小米MIX4曝光,颜值真不错
  10. 同学孩子上985大学,每月生活费5000元,大家认为合适吗?