关于上传下载的问题

来源:百度知道 编辑:UC知道 时间:2024/05/23 12:08:31
上传:
对文件进行重命名,并把原文件名和新文件名存储于数据库
下载:
根据数据库存储的记录,客户端下载时弹出的保存路径对话框,文件名那里默认原文件名

请问可以这样实现吗?
代码上该怎么实现呢?
我只用jsp+javabean,不用struts
上传时需要调用上传组件,可是存数据库的代码写到哪里?写上传组建里不合规矩吧
下载时怎么默认原文件名啊,怎么设置

把文件存储在数据库里要看文件有多大,如果普遍比较大的话,这种方式不可行,无论是对于数据库还是对于应用,但是技术上都是可以做到的
struts有文件上传的类,保存数据库就按照保存clob的方式去保存就可以。
下载没做过,不太清楚。

如果用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.s