j2ee 上传下载 小记
上传:
文件上传,通常是使用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 上传下载 小记相关推荐
- 文件上传下载—servlet API实现
servlet API实现文件上传下载需要的jar包: UploadServlet.java package com.ymw.web.servlet;import java.io.File; impo ...
- struts上传word和excel文件到oracle,Struts文件上传,下载,重传,预览
[Struts2]☆★之文件上传,下载,重传,预览 今日群里一兄弟问我能否给一份struts文件上传下载的例子,因为自己项目比较紧所以想在网上找 些源码给他,但是纵观全网,写的都不是太全,这让新手使用 ...
- linux 安装上传文件,linux常用命令(二)文件上传下载及软件安装
1.上传下载工具安装 (1)WINDOWS 到linux的文件上传及下载: windows下打开secureCRT,通过SSH连到⾄至远程linux主机: 上传下载工具安装命令:yum -y inst ...
- 初级版python登录验证,上传下载文件加MD5文件校验
服务器端程序 import socket import json import struct import hashlib import osdef md5_code(usr, pwd):ret = ...
- linux快捷上传下载文件
借助securtCRT,使用linux命令sz可以很方便的将服务器上的文件下载到本地,使用rz命令则是把本地文件上传到服务器 其中,对于sz和rz的理解与记忆我用了如下的方法(因为很多时候容易搞混): ...
- Java中使用FTPClient上传下载
转自:http://blog.csdn.net/hbcui1984/article/details/2720204 在JAVA程序中,经常需要和FTP打交道,比如向FTP服务器上传文件.下载文件,本文 ...
- JSP中的文件操作:数据流、File类、文件浏览、目录操作、上传下载
文件可以永久地存储信息,从本质上讲文件就是存放在盘上的一系列数据的集合.应用程序如果想长期保存数据,就必须将数据存储到文件中,这就涉及到文件的操作.而在编写网站应用程序的过程中,有许多地方要对文件 ...
- 高可用的Spring FTP上传下载工具类(已解决上传过程常见问题)
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者:宇的季节 cnblogs.com/chenkeyu/p/80 ...
- 教你如何实现c#文件上传下载功能
简单介绍一下c#文件上传下载功能实现. NuGet 安装SqlSugar Model文件下新建 DbContext 类 public class DbContext {public DbContext ...
最新文章
- jQuery addClass,removeClass,class属性增删
- ubuntu 16.04修复固件刷新失败的LimeSDR-USB V1.4
- java web问题
- Aop动态代理解决问题
- 【转载】JAVA内存模型和线程安全
- 让jQuery Tools Scrollable控件在Mobile Web里面支持resize功能
- 【转】01.Dicom 学习笔记-DICOM C-Store 消息服务
- Python中操作mysql的pymysql模块详解
- 微信开发实现一键拨号出现屏蔽问题的解决方案
- 相对于其他框架的离子应用开发:它被炒作了吗?
- RenderTransformOrigin 的作用
- YII2 使用curl请求,返回false
- Mysql 正序 空值在后
- 什么才是成熟的爱——爱的四个层次
- 易考防作弊功能有哪些_浙江考试院发公告,上百名考生考研违规,你可以不努力但不能作弊...
- 1125 斐波那契数列
- GLM(General Language Model)代码分析
- 台式电脑如何修复计算机,台式电脑没有声音了怎么恢复(在家用这两个方法轻松解决)...
- keil创建无启动文件及自定义.sct文件的工程
- 我也玩android了