jsp图片文件上传
有一个form如下:
<form action="upload.jsp" method="post" ENCTYPE="multipart/form-data" ACCEPT="image/pjpeg">
<input type="file" name="updata" ><br>
<input type="submit" value="submit">
upload.jsp怎么写呀,最好用jsp代码,不用javabeans,各位帮忙??
问题点数:60、回复次数:13Top
1 楼stonecsdn(东东)回复于 2005-07-24 12:03:49 得分 5
使用jspsmartuploadTop
2 楼creater(寻常不见面,偶尔露狰狞!)回复于 2005-07-24 15:14:32 得分 25
你可以用jspSmartUpload组件,这是一个可免费使用的全功能的文件上传下载组件,适于嵌入执行上传下载操作的JSP文件中。给你一个具体的例子:
1、上传页面upload.html
本页面提供表单,让用户选择要上传的文件,点击"上传"按钮执行上传操作。
页面源码如下:
<!--
文件名:upload.html
-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>文件上传</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<body>
<p> </p>
<p align="center">上传文件选择</p>
<FORM METHOD="POST" ACTION="jsp/do_upload.jsp"
ENCTYPE="multipart/form-data">
<input type="hidden" name="TEST" value="good">
<table width="75%" border="1" align="center">
<tr>
<td><div align="center">1、
<input type="FILE" name="FILE1" size="30">
</div></td>
</tr>
<tr>
<td><div align="center">2、
<input type="FILE" name="FILE2" size="30">
</div></td>
</tr>
<tr>
<td><div align="center">3、
<input type="FILE" name="FILE3" size="30">
</div></td>
</tr>
<tr>
<td><div align="center">4、
<input type="FILE" name="FILE4" size="30">
</div></td>
</tr>
<tr>
<td><div align="center">
<input type="submit" name="Submit" value="上传它!">
</div></td>
</tr>
</table>
</FORM>
</body>
</html>
2、上传处理页面do_upload.jsp
本页面执行文件上传操作。页面源码中详细介绍了上传方法的用法,在此不赘述了。
页面源码如下:
<%--
文件名:do_upload.jsp
--%>
<%@ page contentType="text/html; charset=gb2312" language="java"
import="java.util.*,com.jspsmart.upload.*" errorPage="" %>
<html>
<head>
<title>文件上传处理页面</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<body>
<%
// 新建一个SmartUpload对象
SmartUpload su = new SmartUpload();
// 上传初始化
su.initialize(pageContext);
// 设定上传限制
// 1.限制每个上传文件的最大长度。
// su.setMaxFileSize(10000);
// 2.限制总上传数据的长度。
// su.setTotalMaxFileSize(20000);
// 3.设定允许上传的文件(通过扩展名限制),仅允许doc,txt文件。
// su.setAllowedFilesList("doc,txt");
// 4.设定禁止上传的文件(通过扩展名限制),禁止上传带有exe,bat,
jsp,htm,html扩展名的文件和没有扩展名的文件。
// su.setDeniedFilesList("exe,bat,jsp,htm,html,,");
// 上传文件
su.upload();
// 将上传文件全部保存到指定目录
int count = su.save("/upload");
out.println(count+"个文件上传成功!<br/>");
// 利用Request对象获取参数之值
out.println("TEST="+su.getRequest().getParameter("TEST")
+"<BR><BR>");
// 逐一提取上传文件信息,同时可保存文件。
for (int i=0;i<su.getFiles().getCount();i++)
{
com.jspsmart.upload.File file = su.getFiles().getFile(i);
// 若文件不存在则继续
if (file.isMissing()) continue;
// 显示当前文件信息
out.println("<TABLE BORDER=1>");
out.println("<TR><TD>表单项名(FieldName)</TD><TD>"
+ file.getFieldName() + "</TD></TR>");
out.println("<TR><TD>文件长度(Size)</TD><TD>" +
file.getSize() + "</TD></TR>");
out.println("<TR><TD>文件名(FileName)</TD><TD>"
+ file.getFileName() + "</TD></TR>");
out.println("<TR><TD>文件扩展名(FileExt)</TD><TD>"
+ file.getFileExt() + "</TD></TR>");
out.println("<TR><TD>文件全名(FilePathName)</TD><TD>"
+ file.getFilePathName() + "</TD></TR>");
out.println("</TABLE><BR>");
// 将文件另存
// file.saveAs("/upload/" + myFile.getFileName());
// 另存到以WEB应用程序的根目录为文件根目录的目录下
// file.saveAs("/upload/" + myFile.getFileName(),
su.SAVE_VIRTUAL);
// 另存到操作系统的根目录为文件根目录的目录下
// file.saveAs("c:\\temp\\" + myFile.getFileName(),
su.SAVE_PHYSICAL);
}
%>
</body>
</html>
Top
3 楼Jimmy817(真子弹)回复于 2005-07-24 15:51:58 得分 0
请问smartupload 将文件存在什么地方,能否在解释的详细点?Top
4 楼linda716()回复于 2005-07-24 16:51:49 得分 0
在上面的例子中是存到upload文件夹中了,你可以在你的项目文件夹下自己建一个upload文件夹
我想请问一下 creater,有没有将文件名、路径等存入数据库的例子呀,能不能再给发一下?谢谢啦!
我的E-mail:zhaojl@yeah.netTop
5 楼armstronghp(@小旋风@)回复于 2005-07-24 17:38:43 得分 5
creater(寻常不见面,偶尔露狰狞!) 回答的很详细,up...Top
6 楼ringerxyz()回复于 2005-07-24 17:41:18 得分 0
标记一下Top
7 楼creater(寻常不见面,偶尔露狰狞!)回复于 2005-07-24 18:14:56 得分 0
to: linda716()
有没有将文件名、路径等存入数据库的例子呀????
--------------------------
如果想保存到数据库中,服务器端的路径肯定是你自已事先知道(或事先在配置文件中设置好的) + myFile.getFileName(),这个在数据库表中加一个字段,把值写进去不就好了么?
这个就是数据库操作部分,和文件上传无关了吧!
最好建个专门写数据库的类,
下面这个代码片断我把它们放到一起了
public Connection conn;
public Statement stmt;
public PreparedStatement pstmt;
public ResultSet rs;
try {
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
conn = DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=db", "sa", "");
stmt=conn.createStatement();
stmt.executeUpdate("insert into yourtable(path) values(yourpath)");
stmt.close();
conn.close();
}
catch (Exception e) {
e.printStackTrace();
}Top
8 楼simon0512(虫虫)回复于 2005-07-25 00:23:48 得分 5
jspsmartuploadTop
9 楼flymoon(花儿月)回复于 2005-07-25 01:51:35 得分 5
jspsmartupload
Top
10 楼eidolon_warrior(精灵_战士)回复于 2005-07-25 08:39:40 得分 5
jspsmartupload 很好用
Top
11 楼netstu(孤心)回复于 2005-07-25 11:16:31 得分 0
谁有jspSmartUpload呀,给我一份吧,
netstu@126.com
谢谢各位了Top
12 楼minisun2000(红色枫叶)回复于 2005-07-25 11:27:16 得分 5
为什么全是jspsmartupload呢?你们上传的文件都多大?jspsmartupload这个玩意估计10M就不行了,还是用fileupload比较好。Top
13 楼yuansheng1010()回复于 2005-07-25 11:32:00 得分 5
我也试过jspsmartupload,确实可用,大家不妨用下。Top




