文件上传之smartupload

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
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值