关于上传下载的问题

上传:对文件进行重命名,并把原文件名和新文件名存储于数据库下载:根据数据库存储的记录,客户端下载时弹出的保存路径对话框,文件名那里默认原文件名请问可以这样实现吗?代码上该... 上传:
对文件进行重命名,并把原文件名和新文件名存储于数据库
下载:
根据数据库存储的记录,客户端下载时弹出的保存路径对话框,文件名那里默认原文件名

请问可以这样实现吗?
代码上该怎么实现呢?
我只用jsp+javabean,不用struts
上传时需要调用上传组件,可是存数据库的代码写到哪里?写上传组建里不合规矩吧
下载时怎么默认原文件名啊,怎么设置
展开
 我来答
he8523
2008-05-06 · 超过11用户采纳过TA的回答
知道答主
回答量:58
采纳率:0%
帮助的人:0
展开全部
如果用Struts做文件上传的话会比较容易些,首先你做文件上传是可以得到文件的完整路径的,也就是说你可以得到文件名,至于你怎么重命名就是你的问题了,你把改后的名字存进数据库就可以了!文件下载你只需要做一个超链接<a href="文件的路径">下载</a>这样就可以下载了,不需要做别的东西!
补充::::::::::::
我做过用jsp+servlet的文件上传,应该和用jsp+javabean的差不多,我把代码给你复制上来你看下,以前我做的时候是把存数据库写在上传的servlet里的,如果你认为那样不好的话可以在javabean里把文件名取出来然后再传给另外一个类处理也可以啊,附jsp+servlet上传代码:
servlet代码:
String code =null ;
String name =null ;
String filename =null;
File f =null;
String path = request.getRealPath("img");
System.out.println( "物理路径: "+path );
try{

DiskFileUpload fu = new DiskFileUpload();
//设置允许用户上传文件大小,单位:字节
fu.setSizeMax(10000000);
//maximum size that will be stored in memory?
//设置最多只允许在内存中存储的数据,单位:字节
fu.setSizeThreshold(4096);
// 设置一旦文件大小超过getSizeThreshold()的值时数据存放在硬盘的目录
fu.setRepositoryPath("C:\\winnt\\temp");
// 开始读取上传信息
List fileItems = fu.parseRequest(request);
Iterator it = fileItems.iterator();
while( it.hasNext()){
//请求过来的数据项
FileItem item = (FileItem) it.next();
if(item.isFormField()){ //判断是否是表单项
String fieldName = item.getFieldName();
String val = item.getString();
// System.out.println( fieldName);
// System.out.println( val );

if( fieldName.equals("pdtcode")){
code = val ;
}else if( fieldName.equals("pdtname")){
name = val;
}
}else{ //非表单项,文件数据

String ss = item.getName(); //取出文件名称包括完整物理路径

filename = ss.substring( ss.lastIndexOf("\\")+1,ss.length() );

System.out.println( ss );
System.out.println( filename );
f = new File( path +"\\"+filename );
item.write( f); //将文件直接写到指定目录

JSP::::
<form action="add" method="post" ENCTYPE="multipart/form-data">
商品图片:<input type="file" name="upfile" value="上传文件"/><br>
商品编码:<input type="text" name="pdtcode"/><br>
商品名称:<input type="text" name="pdtname"/><br>
<input type="submit" name="btn_sumit" value="add"/>

</form>
glassesbamboo
2008-04-28 · TA获得超过558个赞
知道小有建树答主
回答量:379
采纳率:0%
帮助的人:470万
展开全部
把文件存储在数据库里要看文件有多大,如果普遍比较大的话,这种方式不可行,无论是对于数据库还是对于应用,但是技术上都是可以做到的
struts有文件上传的类,保存数据库就按照保存clob的方式去保存就可以。
下载没做过,不太清楚。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
mr_JBean
2008-04-28
知道答主
回答量:3
采纳率:0%
帮助的人:0
展开全部
可以使用jspsmartupload或apache commons fileupload组件,实现上传及下载文件. 文件被临时归类命名存储在硬盘,文件的原名字与新名在数据库中建立了对应关系, 下载时是原名.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友716c2b9
2008-04-28 · TA获得超过129个赞
知道答主
回答量:203
采纳率:0%
帮助的人:83.3万
展开全部
楼上的能不能说的再详细点呢??
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式