社区
Web 开发
帖子详情
SOS--如何在jsp中实现文件的自动上传
wangzhenbo
2005-09-14 07:03:43
我想实现的功能是:指定本地的一个文件名,通过JSP可以自动上传到服务器,不能用FTP.
本来想在JSP中用file元素,但不能指定它的value,只能由用户选择或输入,郁闷!
望各位高手不吝赐教!
...全文
268
9
打赏
收藏
SOS--如何在jsp中实现文件的自动上传
我想实现的功能是:指定本地的一个文件名,通过JSP可以自动上传到服务器,不能用FTP. 本来想在JSP中用file元素,但不能指定它的value,只能由用户选择或输入,郁闷! 望各位高手不吝赐教!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zzhzzh204553
2005-09-15
打赏
举报
回复
file的value可以设置,
但是没有任何作用,因为它将被忽略.
如果不被忽略,你想想,不是可以任意
地获得别人的文件了.
那每个人都可以做黑客了.
哈哈...
mrguoguo
2005-09-15
打赏
举报
回复
用jspsmartupload就行。
vlin
2005-09-15
打赏
举报
回复
file的value是只读的
如果可以设值,那还得了
leopard_47
2005-09-15
打赏
举报
回复
file表单不能赋值吧,<input name="file" type="file" type="hidden" value="D:/test.jpg" size=60>
这里设了两次type的值能行吗?
findfeels
2005-09-14
打赏
举报
回复
就用jspsmartupload能实现此功能
findfeels
2005-09-14
打赏
举报
回复
可以的不用选择把它设为hidden,value也能设
<input name="file" type="file" type="hidden" value="D:/test.jpg" size=60>
wangzhenbo
2005-09-14
打赏
举报
回复
谢谢zebra007(呼呼)的回答.
不过有一个要求:不需要用户自己选择文件,而是直接通过文件名自动上传.
上面你写的;<INPUT size=60 type=file name="file">是需要用户选择的,我不能设置file的value属性.
:(
zebra007
2005-09-14
打赏
举报
回复
在jsp中使用smartupload组件上传文件 leshui(原作)
jsp对上传文件的支持不象php中支持的那么好,直接做成了函数,也不象asp中要通过组件才能实现。jsp中可以通过javabean来实现。但是我们没有必要自己去写一个上载的bean,在网上已经有了很多成型的技术,smartupload就是其中的一个。但是smartupload是将文件先读到服务器的内存中,所以上传太大的文件(超过100兆)有可能会出问题,也算是一个美中不足吧:)
先说一下提交的页面,smartupload组件要求用字节流的方式来提交<FORM action="upload.jsp" encType=multipart/form-data method=post>。下面就是个例子upload.htm:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0057)http://localhost:8080/jspsmartfile/jsp/uploadTemplate.jsp -->
<HTML><HEAD>
<META content="text/html; charset=gb2312" http-equiv=Content-Type>
<META content="MSHTML 5.00.2920.0" name=GENERATOR></HEAD>
<BODY bgColor=#e6e6e6><BR>
<FORM action="upload.jsp" encType=multipart/form-data method=post>
<TABLE>
<TBODY>
<TR>
<TD><FONT color=#000000 face=helv,helvetica size=1> File
: </FONT> <INPUT size=60 type=file name="file"></TD></TR>
<TR>
<TR>
<TD><FONT color=#000000 face=helv,helvetica size=1> File
: </FONT> <INPUT size=60 type=file name="file1"></TD></TR>
<TR>
<TD><FONT color=#000000 face=helv,helvetica size=1> File
: </FONT> <INPUT size=60 type=text name="text"></TD></TR>
<TR>
<TD
align=right><INPUT type=submit value=Send name="send"></TD></TR></TBODY></TABLE></FORM></BODY></HTML>
再来看一下接收的页面 ,我们把文件上传到服务器以后就直接把它再存入数据库中:upload.jsp
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*"%>
<%@ page import="com.jspsmart.upload.*" %>
<%@ page import="DBstep.iDBManager2000.*"%>
<%
//实例化上载bean
com.jspsmart.upload.SmartUpload mySmartUpload=new com.jspsmart.upload.SmartUpload();
//初始化
mySmartUpload.initialize(pageContext);
//设置上载的最大值
mySmartUpload.setMaxFileSize(500 * 1024*1024);
//上载文件
mySmartUpload.upload();
//循环取得所有上载的文件
for (int i=0;i<mySmartUpload.getFiles().getCount();i++){
//取得上载的文件
com.jspsmart.upload.File myFile = mySmartUpload.getFiles().getFile(i);
if (!myFile.isMissing())
{
//取得上载的文件的文件名
String myFileName=myFile.getFileName();
//取得不带后缀的文件名
String suffix=myFileName.substring(0,myFileName.lastIndexOf('.'));
//取得后缀名
String ext= mySmartUpload.getFiles().getFile(0).getFileExt();
//取得文件的大小
int fileSize=myFile.getSize();
//保存路径
String aa=getServletContext().getRealPath("/")+"jsp\\";
String trace=aa+myFileName;
//取得别的参数
String explain=(String)mySmartUpload.getRequest().getParameter("text");
String send=(String)mySmartUpload.getRequest().getParameter("send");
//将文件保存在服务器端
myFile.saveAs(trace,mySmartUpload.SAVE_PHYSICAL);
//下面的是将上载的文件保存到数据库中
//将文件读到流中
java.io.File file = new java.io.File(trace);
java.io.FileInputStream fis = new java.io.FileInputStream(file);
out.println(file.length());
//打开数据库
ResultSet result=null;
String mSql=null;
PreparedStatement prestmt=null;
DBstep.iDBManager2000 DbaObj=new DBstep.iDBManager2000();
DbaObj.OpenConnection();
//将文件写到数据库中
mSql="insert into marklist (markname,password,marksize,markdate,MarkBody) values (?,?,?,?,?)";
prestmt =DbaObj.Conn.prepareStatement(mSql);
prestmt.setString(1, "aaa1");
prestmt.setString(2, "0000");
prestmt.setInt(3, fileSize);
prestmt.setString(4, DbaObj.GetDateTime());
prestmt.setBinaryStream(5,fis,(int)file.length());
DbaObj.Conn.setAutoCommit(true) ;
prestmt.executeUpdate();
DbaObj.Conn.commit();
out.println(("上载成功!!!").toString());
}
else
{ out.println(("上载失败!!!").toString()); }
}//与前面的if对应
%>
再说一下下载,下载分两种情况1。从数据库直接下载2。从服务器上下载
先说从数据库直接下载的情形:就是把输入流从数据库里读出来,然后转存为文件
<%@ page contentType="text/html; charset=gb2312" %>
<%@ page import="java.sql.*"%>
<%@ page import="java.io.*" %>
<%@ page import="DBstep.iDBManager2000.*"%>
<%
int bytesum=0;
int byteread=0;
//打开数据库
ResultSet result=null;
String Sql=null;
PreparedStatement prestmt=null;
DBstep.iDBManager2000 DbaObj=new DBstep.iDBManager2000();
DbaObj.OpenConnection();
//取得数据库中的数据
Sql="select * from t_local_zhongzhuan ";
result=DbaObj.ExecuteQuery(Sql);
result.next();
//将数据库中的数据读到流中
InputStream inStream=result.getBinaryStream("content");
FileOutputStream fs=new FileOutputStream( "c:/dffdsafd.doc");
byte[] buffer =new byte[1444];
int length;
while ((byteread=inStream.read(buffer))!=-1)
{
out.println("<DT><B>"+byteread+"</B></DT>");
bytesum+=byteread;
System.out.println(bytesum);
fs.write(buffer,0,byteread);
}
%>
再说从服务器上下载的情形:
<%@ page contentType="text/html; charset=gb2312" %>
<%@ page import="java.io.*" %>
<%
String fileName = "zsc104.swf".toString();
f//读到流中
InputStream inStream=new FileInputStream("c:/zsc104.swf");
//设置输出的格式
response.reset();
response.setContentType("bin");
response.addHeader("Content-Disposition","attachment; filename=\"" + fileName + "\"");
//循环取出流中的数据
byte[] b = new byte[100];
int len;
while((len=inStream.read(b)) >0)
response.getOutputStream().write(b,0,len);
inStream.close();
%>
好了,到这里只要不是太大的文件的上传下载的操作都可以完成了。
kingdoom
2005-09-14
打赏
举报
回复
帮顶
【JavaWeb】]Servlet
实现
文件
上传
与下载
当然除了
上传
,遇见下载的情况也很多,接下来看看我们 servlet
中
怎么
实现
文件
的
上传
和下载。
文件
上传
涉及到前台页面的编写和后台服务器端代码的编写,前台发送
文件
,后台接收并保存
文件
,这才是一个完整的
文件
上传
...
【编程不良人】快速入门SpringMVC学习笔记03---
文件
上传
、
文件
下载、springmvc与Ajax集成(@ResponseBody注解使用)、拦截器、全局异常处理
文件
上传
: 指的就是将用户本地计算机
中
文件
上传
到服务器上的过程称 1.1 新建maven-webapp工程,添加java、resources目录 1.2 pom.xml引入依赖 <!--spring核心及相关依赖--> <dependency
JavaEE系列之(二)commons-fileupload
实现
文件
上传
、下载
实现
Web开发
中
的
文件
上传
功能,需要两步操作: 1、在Web页面
中
添加
上传
输入项 <form action="#" method="post" enctype="multipart/form-data"> <input type="file" name="filename1"/>....
JSP
学习
JSP
学习
如何使用MongoDB
上传
文件
jsp
页面 展示 图片的路径;标签内是
上传
的一些操作;div
中
的filequence,imgQuence 与
上传
方法
中
的id一致; input
中
的value用与
上传
到mongodb数据库 ,及回显 页面的写法多种:这里只提供两种 ;灵活使用 <tr&...
Web 开发
81,094
社区成员
341,711
社区内容
发帖
与我相关
我的任务
Web 开发
Java Web 开发
复制链接
扫一扫
分享
社区描述
Java Web 开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章