社区
Web 开发
帖子详情
如何用jsp实现文件上传和下载,见天加班,就为这个问题,等待中....
heroes3player
2003-10-19 10:13:15
给个例子先
...全文
1043
10
打赏
收藏
如何用jsp实现文件上传和下载,见天加班,就为这个问题,等待中....
给个例子先
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
heroes3player
2003-10-19
打赏
举报
回复
谢谢大家了,有这些提示,对我应该是足够了,马上揭贴。
heroes3player
2003-10-19
打赏
举报
回复
关于用第三方组件的方法,我已经找到了。
最好是自己写
wind666
2003-10-19
打赏
举报
回复
这是用文件来的,可以用数据库的
wind666
2003-10-19
打赏
举报
回复
给你一个简单的例子,你自己想一下吧
loadfile.html
<%@page contenttype="text/html;charset=gb2312"%>
<html>
<body>
<p>单击超连接下载zip文档book.zip
<br>
<a href="loadfile.jsp">下载book.zip
</body>
</html>
loadfile.jsp
<%@ page contentType="text/html;charset=gb2312"%>
<%@page import="java.io.*"%>
<html>
<body>
<%
OutputStream o=response.getOutputStream();
byte b[]=new byte[500];
File fileLoad=new File("E:/aa.mdb");
response.setHeader("contnt-disposition","attachment; filename="+"aa.rar");
response.setContentType("application/x-tar");
long fileLength=fileLoad.length();
String length1=String.valueOf(fileLength);
response.setHeader("Content_Length",length1);
FileInputStream in=new FileInputStream(fileLoad);
int n;
while((n=in.read(b))!=-1)
{
o.write(b,0,n);
}
%>
</body>
</html>
upload.html
<%@ page contentType="text/html;charset=gb2312"%>
<html>
<body>
<p>选择要上传的文件:<br>
<form action="upload.jsp" method=post ENCTYPE="multipart/form-data">
<input type="FILE" name="boy" size="38">
<br>
<input type="submit" name="g" value="提交">
</body>
</html>
upload.jsp
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.io.*"%>
<html>
<body>
<% try{//用户的seesion 的id 建立一个临时文件。
String tempFileName=(String)session.getId();
//建立临时文件f1.
File f1=new File("E:/",tempFileName);
FileOutputStream o=new FileOutputStream(f1);
//将客户上全部信息存入f1.
InputStream in=request.getInputStream();
byte b[]=new byte[1000];
int n;
while((n=in.read(b))!=-1)
{
o.write(b,0,n);
}
o.close();in.close();
//读取临时文件f1,从中获取上传文件的名字和上传的内容。
RandomAccessFile random=new RandomAccessFile(f1,"r");
//读取f1 的第2行,析取上传文件的名字。
int second=-1;
String secondLine=null;
while(second<=2)
{secondLine=random.readLine();
second++;
}
//获取第2行中'\\'最后出现的位置。
int position =secondLine.lastIndexOf('\\');
String fileName=secondLine.substring(position,secondLine.length()-1);
random.seek(0);//再定位到文件的开头。
//获取文件的第4 行的回车符号的位置。
long forthEndPosition=0;
int forth=1;
while((n=random.readByte())!=-1&&(forth!=4))
{
if(n=='\n')
{
forthEndPosition=random.getFilePointer();
forth++;
}
}
//根据客户上传文件名字,将该文件存入磁盘。
File f2=new File("E:/",fileName);
session.setAttribute("Name",fileName);//供showImage.jsp页面使用
RandomAccessFile random2=new RandomAccessFile(f2,"rw");
//确定文件f1中包含客户上传的文件 的内容的最后位置,即倒数第6行。
random.seek(random.length());
long endPosition=random.getFilePointer();
long mark=endPosition;
int j=1;
while((mark>=0)&&(j<=6))
{
mark--;
random.seek(mark);
n=random.readByte();
if(n=='\n')
{
endPosition=random.getFilePointer();
j++;
}
}
//将random流指向文件f1的第4 行结束的位置。
random.seek(forthEndPosition);
long startPoint=random.getFilePointer();
//从f1 读出客房上文件 并存入f2(读取从第4 行结束位置和倒数第6行之间的内容)。
while(startPoint<endPosition-1)
{
n=random.readByte();
random2.write(n);
startPoint=random.getFilePointer();
}
random2.close();
random.close();
f1.delete();//删除临时文件。
}
catch(IOException e){}
out.print("文件已上传");
%>
</body>
</html>
这是一个思路:你自己想一下吧
希偌
2003-10-19
打赏
举报
回复
http://www.csdn.net/develop/Read_Article.asp?Id=16432
hajavaor
2003-10-19
打赏
举报
回复
我自己写的文件上传下载程序。
一个邮件系统附件的上传与下载。
也花了我好长时间。
可以与我联系:QQ:19843788
我们可以讨论讨论。
先给分再联系。
lzy9819
2003-10-19
打赏
举报
回复
JSP利用组件实现文件上传的全攻略
一、首先下载jspsmartupload组件
http://www.jspsmart.com 或
http://www.hoodle.net/other/zujian/jspSmartUpload.zip
二、将目录jspsmartupload/wib_inf/classes中的内容拷贝到网站所在的实际目录中的web_inf中(resin是这个目录,其他的可能是classes,具体请查阅jspsmartupload/help/setup.htm)
三、如果是resin运行JSP,请在resin的conf/resin.conf中的
<web-app>和</web-app>中加入:
<path-mapping url-pattern='/upload/*' real-path='f:\jsp\jspsmartupload\upload'/>
四、上传界面的代码如下:(文件名:insert.htm)
<FORM METHOD="POST" ACTION=" uploadfile.jsp" ENCTYPE="multipart/form-data">
<INPUT TYPE="FILE" NAME="FILE1" SIZE="50"><BR>
<INPUT TYPE="FILE" NAME="FILE2" SIZE="50"><BR>
<INPUT TYPE="FILE" NAME="FILE3" SIZE="50"><BR>
<INPUT TYPE="FILE" NAME="FILE4" SIZE="50"><BR>
主题:<input type="text" name="text1" ><br>
<INPUT type=submit value=写 完 name=ok>
</form>
注意上面的real-path目录
五、uploadfile.jsp的代码如下:
<%@ page language="java" import="com.jspsmart.upload.*"%>
<jsp:useBean id="mySmartUpload" scope="page" class="com.jspsmart.upload.SmartUpload" />
<HTML>
<BODY BGCOLOR="white">
<H1>hoodle-jsp</H1>
<HR>
<%
int count=0;
mySmartUpload.initialize(pageContext);
'文件上传
mySmartUpload.upload();
'获得文本的内容
String content = mySmartUpload.getRequest().getParameter("text1");
'显示文本的内容
out.println(content);
'上传的情况统计
for (int i=0;i<mySmartUpload.getFiles().getCount();i++){com.jspsmart.upload.File myFile = mySmartUpload.getFiles().getFile(i);
if (!myFile.isMissing()) {
myFile.saveAs("/upload/" + myFile.getFileName());
out.println("FieldName = " + myFile.getFieldName() + "<BR>");
out.println("Size = " + myFile.getSize() + "<BR>");
out.println("FileName = " + myFile.getFileName() + "<BR>");
out.println("FileExt = " + myFile.getFileExt() + "<BR>");
out.println("FilePathName = " + myFile.getFilePathName() + "<BR>");
out.println("ContentType = " + myFile.getContentType() + "<BR>");
out.println("ContentDisp = " + myFile.getContentDisp() + "<BR>");
out.println("TypeMIME = " + myFile.getTypeMIME() + "<BR>");
out.println("SubTypeMIME = " + myFile.getSubTypeMIME() + "<BR>");
count ++;
}
}
out.println("<BR>" + mySmartUpload.getFiles().getCount() + " files could be uploaded.<BR>");
out.println(count + " file(s) uploaded.");
%>
</BODY>
</HTML>
heroes3player
2003-10-19
打赏
举报
回复
我现在就是在搜索呀,手边的两本参考书没有提级这方面的问题。CSDN好象不提供关键字的检索,我也不可能把所有的帖子一个一个的找一遍呀。
老土豆T
2003-10-19
打赏
举报
回复
参见FAQ..或者搜索上传,smartupload ,下载.. 或者google搜索 (搜索的好处能发现好多关联的问题。)
论坛是发现问题,解决问题,讨论问题的地方,你的问题大家都讨论过了,所以
如果论坛上总是出现相同的问题,可能对一些常来的人失去兴趣了,不利于论坛健康发展。而csdn所谓的人气旺盛,大部分也都是我们这些初学者,
即使我贴了,对你的帮助也不大。。 关于提问参见(http://forum.hibernate.org.cn/viewtopic.php?t=70&sid=bb5a01c054993b7a2ee132dbe93d4aeb)
btw,我也好多问题不懂,一般都是搜索的。。只有知己明白,了解又有疑惑的问题才拿来提问,提问也是个讨论的过程。 希望你能理解,谢谢:)
heroes3player
2003-10-19
打赏
举报
回复
没人回答吗
JSP
请求与响应对象的使用入门
JSP
请求与响应对象的使用入门,极简案例实操。内容包括:请求与响应对象-1-项目环境搭建、请求与响应对象-2-新建login.
jsp
、请求与响应对象-3-编写Acount.java文件、请求与响应对象-4-编写CheckAcount.java文件、请求与响应对象-5-编写Success.
jsp
文件、请求与响应对象-6-修改web.xml、请求与响应对象-7-运行测试。
跟汤老师学Java(第27季):
JSP
一、课程简介本课程为最新录制,是《跟汤老师学Java》系列的第27季,主要讲解
JSP
技术,非常适合初学者的入门教学视频,让你少走弯路,直达技术前沿! 以通俗易懂的方式全面讲解
JSP
技术,以知识讲解+实战案例的方式帮您快速入门! 二、课程内容课程包括:1.
JSP
简介2.
JSP
组成3.
JSP
内置对象4.Cookie用法5.Session用法6.WebStorage7.EL和JSTL8.过滤器9.监听器10.
文件上传
commons-fileupload11.log4j日志教学全程采用笔记+代码案例的形式讲解,每个知识点都有详细的讲解,通俗易懂!!! 三、笔记截图 四、学员好评 【全网500万学员的选择,好评如潮,专业更值得信赖】 四、讲师介绍
JavaWeb实战开发
本课程详细讲解了以下内容: 1.
jsp
环境搭建及入门、虚拟路径和虚拟主机、
JSP
执行流程 2.使用Eclipse快速开发
JSP
、编码
问题
、
JSP
页面元素以及request对象、使用request对象
实现
注册示例 3.请求方式的编码
问题
、response、请求转发和重定向、cookie、session执行机制、session共享
问题
4.session与cookie
问题
及application、cookie补充说明及四种范围对象作用域 5.JDBC原理及使用Statement访问数据库、使用JDBC切换数据库以及PreparedStatement的使用、Statement与PreparedStatement的区别 6.JDBC调用存储过程和存储函数、JDBC处理大文本CLOB及二进制BLOB类型数据 7.
JSP
访问数据库、JavaBean(封装数据和封装业务逻辑) 8.MVC模式与Servlet执行流程、Servlet25与Servlet30的使用、ServletAPI详解与源码分析 9.MVC案例、三层架构详解、乱码
问题
以及三层代码流程解析、完善Service和Dao、完善View、优化用户体验、优化三层(加入接口和DBUtil) 1 0.Web调试及bug修复、分页SQL(Oracle、MySQL、SQLSERVER) 11.分页业务逻辑层和数据访问层Service、Dao、分页表示层
Jsp
、Servlet 12.
文件上传
及注意
问题
、控制
文件上传
类型和大小、
下载
、各浏览器
下载
乱码
问题
13.EL表达式语法、点操作符和
中
括号操作符、EL运算、隐式对象、JSTL基础及set、out、remove 14.过滤器、过滤器通配符、过滤器链、监听器 15.session绑定解绑、钝化活化 16.以及Ajax的各种应用 17. Idea环境下的Java Web开发
JSP
&Servlet应用开发-日记分享网站的设计与
实现
通过本课程的学习,可以将JavaWeb知识综合运用,设计并
实现
一个日记分享网站。按照项目开发周期来展开,每一个阶段都能够有所收获,慢慢地提升自己,遇到程序Bug时候的调试方法,积累经验。在讲授和实操过程
中
直观地呈现出来,将一个美观的网站从无到有的
实现
,这个过程和结果会让人产生较好的成就感。没有JavaWeb基础的同学可先学习
JSP
&Servlet应用开发-基础入门篇等。
javawen之
jsp
从入门到项目实战(
jsp
+servlet)
JSP
全称Java Server Pages,是一种动态网页开发技术。它使用
JSP
标签在HTML网页
中
插入Java代码。标签通常以结束。
JSP
是一种Java servlet,主要用于
实现
Java web应用程序的用户界面部分
JSP
通过网页表单获取用户输入数据、访问数据库及其他数据源,然后动态地创建网页。 本课程对
JSP
做了详细讲解,主要涉及的课程内容:
jsp
的底层原理,
jsp
与servlet的区别,
jsp
页面如何插入java代码,
jsp
中
的3个指令、7个动作,9个内置对象的使用,EL表达式,JSTL标签,如何自定义标签,MVC模式,
jsp
+servlet实战案例
Web 开发
81,092
社区成员
341,716
社区内容
发帖
与我相关
我的任务
Web 开发
Java Web 开发
复制链接
扫一扫
分享
社区描述
Java Web 开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章