文件上传之smartupload

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 15:45   81   0

SmartUpload

这是一种在JSP中使用非常广泛的文件上传组件。

要使用该组件要首先在tomcat的lib中导入smartupload.jar,或者放到其他的classpath路径下。

上传方法:

提交的方式非常简单,使用表单提交即可,要注意在from标签中加入enctype=”multipart/form-data”来让文件以二进制流的方式上传。并且使用post方法,因为get有长度限制。在input属性中填入file就可以了。

记得要在根目录下建立一个upload文件夹,以保存文件。

表单action指向的jsp文件,要完成以下几个步骤。

SmartUpload smart =new SmartUpload(); //实例化SmartUpload对象

smart.initialize(pageContext); //初始化上传的操作

smart.upload(); // 准备上传

smart.sava(“upload”); // 保存文件

当然,不要忘记了导入smart的包。

封装二进制流带来的问题

问题来了,我们在form标签中,为表单加入了一个将文件封装成二进制的属性。这个属性,不仅仅是对文件封装哦,连带着其它的文本都封装掉了。加入你想让图片和文字通过一个表单提交,难道就只能二者取其一了么?

为解决这个问题,smartupload组件提供了一个方法,但要注意必须要插在准备上传之后。

String x=smart.getRequest().getParameter(“表单参数名”);

重命名带来的问题

要注意的一点是,按照以上的方法,上传的文件名仍旧保存了原文件的名字。这就有可能会造成重名覆盖的问题。

为了解决这个问题,需要编写一个javabean来解决。这个javabean的功能是对文件进行重命名。

可以使用”ip地址+时间戳+三位随机数字“,这是一种常见的重命名方法,然后通过smart自带的函数获取文件后缀,将这些组合起来上传即可。

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP