关于jspSmartUpload上传文件

当form表单属性enctype="multipart/form-data"时,提交时用常规的request.getParamater()方法获取不到参数,此时用jspSmartUpload.jsp包可实现参数的获取和文件的上传,步骤如下:

1 网上搜索jspSmartUpload.jsp下载并引入web项目的dependencies中,并引入WEB-INF文件下的lib中(没有此文件就创建一个,并设置为resource root),不然会报找不到类的错误

2 前端jsp界面提交form表单,Servlet获取form表单中的参数。代码示例如下。

jsp代码

 

<form name="articleform" class="form-horizontal" action="${pageContext.request.contextPath}/list"
                  method="post" enctype="multipart/form-data">
                <input type="text" name="id" />
                <input type="file" name="image" size="100"
         
<input type="submit" value="提交" /> </form>

 

注意method必须为post,enctype必须为multipart/form-data。(具体原因可搜索下enctype几种属性的区别)

 

servlet代码:

 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        request.setCharacterEncoding("UTF-8");
        try {
            SmartUpload su=new SmartUpload();
//初始化SmartUpload ,必须有要,不然有异常
            su.initialize(this.getServletConfig(),request,response);
            su.setMaxFileSize(1*1024*1024);
            su.setTotalMaxFileSize(10*1024*1024);
            su.setAllowedFilesList("jpg,png,JPG");
            su.upload();
//获取其它参数
            String id =su.getRequest.getParameter("id");
//获取文件,如果文件为多个,循环遍历即可
            Files files=su.getFiles();
            String fileName=files.getFile(0).getFileName();
//saveAs方法第二个参数用法可以自己详究一下
            files.getFile(0).saveAs("/resources/images/article/"+fileName,File.SAVEAS_VIRTUAL);
      }
    }                    

代码只做示例作用,思路没有问题,但是代码是我截取的项目片段,也许存在一点小问题。

 

转载于:https://www.cnblogs.com/nlw-blog/p/10890552.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值