- 浏览: 161642 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
jiangyeqt:
好好的温习了一遍,讲的非常的到位
Session的原理 -
JAVA静静:
这是什么啊?有没有源码?看不懂诶!
开源框架Pushlet入门 -
colinzhy:
讲的很深刻,学习了
Session的原理 -
昔雪似花:
...
Map-iterator -
不相信眼泪:
恩,很好,多谢
.scc文件是做什么用的?
文件下载代码(2008-02-26 21:33:36)标签:情感
String fileName = request.getParameter("fileName");
fileName = fileName.substring(fileName.indexOf("=")+1);
String filePath = servlet.getServletContext().getRealPath("")
+ "\\upload\\" ;
String file = filePath + fileName;
System.out.println(file);
FileInputStream fis = null;
OutputStream os = null;
byte[] bos = new byte[1024];
int length = 0;
try {
response.setContentType("application/x-msdownload");
response.setHeader("Content-disposition", "attachment;filename="
+ new String(fileName.getBytes("gb2312"),"iso8859-1"));
fis = new FileInputStream(file);
os = response.getOutputStream();
while((length=fis.read(bos))!=-1){
os.write(bos, 0, length);
// os.flush();
}
} catch (Exception e) {
e.printStackTrace();
}finally{
try {
if(os!=null)
os.close();
if(fis!=null)
fis.close();
} catch (Exception e) {
e.printStackTrace();
}
}
注意:
1.response.setContentType("application/x-msdownload");
2.response.setHeader("Content-disposition", "attachment;filename="
+ new String(fileName.getBytes("gb2312"),"iso8859-1"));
PS:解决下载中文乱码 fileName.getBytes("gb2312"),"iso8859-1")
3.待解决问题:选择图片下载时候点取消抛异常
----------------------------------------------------------------------------------------------
用commons.fileupload实现文件的上传和下载2008年04月11日 星期五 15:27commons.fileupload实现文件的上传,需要用到的组件如下:
1)Commons-fileupload-1.1.zip,下载地址为http://archive.apache.org/dist/jakarta/commons/fileupload/
2)commons-io-1.1.zip,下载地址为:http://archive.apache.org/dist/jakarta/commons/io/
代码如下:
<%!
//服务器端保存上传文件的路径
String saveDirectory = "g:\\upload\\";
// 临时路径 一旦文件大小超过getSizeThreshold()的值时数据存放在硬盘的目录
String tmpDirectory = "g:\\upload\\tmp\\";
// 最多只允许在内存中存储的数据大小,单位:字节
int maxPostSize = 1024 * 1024;
%>
<%
// 文件内容
String FileDescription = null;
// 文件名(包括路径)
String FileName = null;
// 文件大小
long FileSize = 0;
// 文件类型
String ContentType = null;
%>
<%
DiskFileUpload fu = new DiskFileUpload();//创建一个新的文件上传句柄
// 设置允许用户上传文件大小,单位:字节
fu.setSizeMax(200*1024*1024);
// 设置最多只允许在内存中存储的数据,单位:字节
fu.setSizeThreshold(maxPostSize);
// 设置一旦文件大小超过getSizeThreshold()的值时数据存放在硬盘的目录
fu.setRepositoryPath("g:\\upload\\tmp\\");
//开始读取上传信息 得到所有文件
try{
List fileItems = fu.parseRequest(request);//解析上传的请求
}catch(FileUploadException e){
//这里异常产生的原因可能是用户上传文件超过限制、不明类型的文件等
//自己处理的代码
}
%>
<%
// 依次处理每个上传的文件
Iterator iter = fileItems.iterator();
while (iter.hasNext()) {
FileItem item = (FileItem) iter.next();
//忽略其他不是文件域的所有表单信息
if (!item.isFormField()) {
String name = item.getName();
long size = item.getSize();
String contentType = item.getContentType();
if((name==null||name.equals("")) && size==0)
continue;
%>
<%
//保存上传的文件到指定的目录
String[] names=StringUtils.split(name,"\\"); //对原来带路径的文件名进行分割
name = names[names.length-1];
item.write(new File(saveDirectory+ name));
}
}
%>
下面是其简单的使用场景:
A、上传项目只要足够小,就应该保留在内存里。
B、较大的项目应该被写在硬盘的临时文件上。
C、非常大的上传请求应该避免。
D、限制项目在内存中所占的空间,限制最大的上传请求,并且设定临时文件的位置。
可以根据具体使用用servlet来重写,具体参数配置可以统一放置到一配置文件
--------------------------------------------------------------------------------
文件的下载用servlet实现
public void doGet(HttpServletRequest request,
HttpServletResponse response)
{
String aFilePath = null; //要下载的文件路径
String aFileName = null; //要下载的文件名
FileInputStream in = null; //输入流
ServletOutputStream out = null; //输出流
try
{
aFilePath = getFilePath(request);
aFileName = getFileName(request);
response.setContentType(getContentType(aFileName) + "; charset=UTF-8");
response.setHeader("Content-disposition", "attachment; filename=" + aFileName);
in = new FileInputStream(aFilePath + aFileName); //读入文件
out = response.getOutputStream();
out.flush();
int aRead = 0;
while((aRead = in.read()) != -1 & in != null)
{
out.write(aRead);
}
out.flush();
}
catch(Throwable e)
{
log.error("FileDownload doGet() IO error!",e);
}
finally
{
try
{
in.close();
out.close();
}
catch(Throwable e)
{
log.error("FileDownload doGet() IO close error!",e);
}
}
}
发表评论
-
Java通用数据访问层Fastser-DAL推荐
2014-12-29 10:20 5614本着不重复造轮子的原则,基于mybatis、spring ... -
正则基础
2009-11-03 10:15 1054public class ReEX { /** * ... -
cookie
2009-11-03 10:25 681//servlet//生成cookie对名象java.uti ... -
JAVA语言读取MAC地址(转)
2009-11-06 17:21 1131import java.io.*; public cla ... -
网站首页静态化方案
2009-11-06 17:52 9811 Freemarker网站静态化的实现(转) 首页: ... -
Apache BeanUtils
2009-11-29 21:17 627BeanUtils.copyProperties 与 Pr ... -
IO流
2009-11-29 21:18 6371 输入/输出流 字节流 字符 ... -
Map-iterator
2009-11-29 21:20 948Set temp=new HashSet();Set e ... -
日期Format
2009-11-29 21:26 781日期格式化 Date currentTime = new Da ... -
判断是否属于此类型
2009-11-29 21:27 699event.getValue() instanceof Act ... -
日期处理
2009-11-29 21:28 625Calendar g=Calendar.getInsta ... -
生成jar包
2009-11-29 21:29 693生成jar包 jar -cvf test.jar *.* *. ... -
同步锁
2009-11-29 21:30 679public void synchronized getall ... -
序列化与反序列化
2009-11-29 21:31 473序列化是把一个对象的状态写入一个字节流的过程,它执行RMI,R ... -
java mail
2009-11-29 21:33 787JavaMail下载与安装 http://java.sun.c ... -
文件上传组件
2009-11-29 21:34 601文件上传组件 1 Apache的Commons FileUpl ... -
pager-taglib的安装和使用
2009-11-29 21:34 6761、拷贝pager-taglib.jar包 2、在JSP页面中 ... -
字符串日期转换
2009-12-03 17:09 1107java开发时往往需要做字符串和日期的转换 主要用到:java ... -
java反编译工具jad
2009-12-13 22:40 731http://www.kpdus.com/jad.html ... -
java优化编程-字符串驻留
2010-01-20 15:26 830字符串比较时,采用.intern()方法将字符串添加到驻留池中 ...
相关推荐
"Fish文库文档下载工具"的核心功能在于其对多种文档网站的兼容性,能够突破常规的在线预览限制,将文档转化为可本地存储的PDF文件。这样,用户就可以随时随地查阅,无需依赖网络连接,极大地提高了学习和工作的效率...
在提供的压缩包文件中,“ExuiKrnln_Win32.lib”可能是一个动态链接库文件,用于支持“萝卜头文档下载器.exe”的功能实现。这类库文件通常包含可被其他程序调用的函数,可能包含了解析网页、模拟登录、抓取下载链接...
总之,"基于Java的book118文档下载器"是一个综合运用了网络请求、HTML解析、文件操作等多种Java技术的实用工具,其具体实现会涉及到网络编程、数据解析、文件I/O等多个计算机科学和技术领域。对于学习Java编程和网络...
在线文档下载器可能使用此库来解析和处理从网站下载的PDF文件,确保用户可以本地存储和阅读这些文档。 “iDocDown.exe”是主程序执行文件,是在线文档下载器的核心部分。它包含了实现下载功能的算法和逻辑,能够...
6. **新建 文本文档.txt**:这可能是示例中的一个测试文件,用于演示如何通过Ajax进行下载。在实际应用中,这个文件的名称和类型将由用户选择或由业务逻辑决定。 具体实现步骤: 1. **前端**:在JSP文件中,使用...
【原创力文档下载工具】利用Python下载原创力文档是一个典型的Web爬虫应用场景,它涉及到Python编程语言、网络请求、文件处理以及可能的HTML解析技术。在这个项目中,开发者使用Python来自动化获取并下载原创力平台...
这些工具能够解析百度文库的页面,抓取文档内容并将其转换成本地文件。使用这类工具时,用户需要复制百度文库文档的网页链接,然后粘贴到工具的输入框内,按照提示进行操作。值得注意的是,这种方法可能受制于网站的...
豆丁网免费下载器(冰点)无需登录也无需积分,只需要将需要下载的文档的网页地址复制在软件的录入框中就可以自由下载,并最终生成pdf文件。对部分pdf文件能够提取文字生成txt。 豆丁网免费下载器还支持自由下载百度、...
visual studio 2010的帮助文档很难下载,一方面文件很多很大,全部文档超过1GB,使用微软自带的 或者辅助工具,由于没有发挥多线程和断点续传的特点,下载速度很慢,容易失败。 另一方面迅雷等下载工具,可以实现...
通过以上步骤,我们就成功地实现了Spring Boot应用中使用Freemarker动态生成并提供Word文档下载的功能。这个示例展示了Spring Boot的灵活性以及与Freemarker集成的便利性,使得动态生成复杂格式的文档变得更加简单。...
国密规范文档所有标准稳当的下载链接,SM2/SM3/SM4/SM9等,各种国密产品检测规范
【描述】"文档下载器" 提供了一个集成化的解决方案,让用户能够轻松下载网络上的文档资源,特别是可能存在于各种文档分享平台上的PDF、SWF等格式的文件。它可能包含了用于处理不同文件类型的组件,以及一些支持程序...
在提供的压缩包子文件“Fish-v324-0712”中,我们可以推测这可能是冰点文档下载器的一个版本,其中可能包含了软件的执行文件、帮助文档、许可证文件等组成部分。用户在下载这个压缩包后,需要解压并按照指示安装和...
标题中的“pb实现http文件下载功能--源代码 可以直接使用”指的是使用PowerBuilder(简称PB)编程语言实现HTTP协议进行文件下载的功能,并且提供了可以直接使用的源代码。这个功能在软件开发中常用于实现自动更新...
豆丁文档下载破解器. 豆丁文档下载破解器. 豆丁文档下载破解器.
由于在学习numpy数据分析的时候没有csv类型文件,又懒得自己一个个敲字,便想来csdn里随便下载一个。然而......居然要钱啊!!!!!!!我没钱,所以自己写了个,我不要你们的钱,麻烦各位拿资源的时候吱一声,这是...
文档下载是指从互联网或其他网络资源中获取文件到本地设备的过程。这通常涉及到浏览器、HTTP/HTTPS协议以及文件传输技术。当你点击一个链接或使用专门的下载工具时,文件就会从服务器传输到你的电脑。为了确保安全,...
总的来说,"海纳百川文档下载器"是针对在线文档下载难题的一款利器,为用户节省了时间,提高了工作效率。然而,随着网络环境的变化,用户需要时刻关注软件的更新和适应性,以及遵守相关法律法规,才能充分发挥其优势...
标题中的“百度或豆丁的原始文件 下载 免积分”指的是从百度文库或豆丁网这两个在线文档分享平台上获取原始文件的方式,通常这些平台为了盈利,会限制用户免费下载高质量的文档,需要消耗积分或者购买。但这个标题...
综上所述,"豆丁当当文档下载"涉及到的技术点包括文档分享平台的使用、文件下载工具、文件格式转换(如SWF到PDF)、文档管理以及特定平台的文件格式(如DOCIN)。这些工具和服务的使用可以帮助用户更有效地获取和...