欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

smartupLoad实现文件上传(最全) 包会

程序员文章站 2022-03-15 08:41:27
...

By CaesarChang                 合作: aaa@qq.com

~关注我  带你看更多精品技术和面试必备

1.将jar包添加到项目中:smartupload.jar

2.准备上传的页面

<form action="toUpload" method="post" enctype="multipart/form-data" >
书名 :<input type="text" name="bookName"/><br>
图片 :<input type="file" name=" 自定义名称 "/><br>
<input type="submit" value=" 提交 "/>
</form>
:(1)form 标签中要添加 enctype属性
(2) 提交方式必须是 post

3.开始获取数据,保存文件

实例代码:
@WebServlet(value="/upload")
public class UploadServlet extends HttpServlet {
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            //1创建对象
        SmartUpload smartUpload = new SmartUpload();
        //2初始化
        PageContext pageContext = JspFactory.getDefaultFactory().getPageContext(this, req, resp, null, false, 1024 * 5, true);
        smartUpload.initialize(pageContext);
        //3设置编码方式
        smartUpload.setCharset("utf-8");
        //4上传
        try {
            smartUpload.upload();
        } catch (SmartUploadException e) {
            e.printStackTrace();
        }
        //5保存文件
        File file = smartUpload.getFiles().getFile(0);
        //6得到文件的基本信息
        String fileName = file.getFileName();
        //7制定服务器保存文件路径
        String url="uploadFile/"+fileName;
        //保存文件
        try {
            file.saveAs(url,File.SAVEAS_AUTO);
        } catch (SmartUploadException e) {
            e.printStackTrace();
        }
//        是否保存成功
        req.setAttribute("fileName",fileName);
        System.out.println(fileName);
//       除文件以外的内容如何获取
        String uname = smartUpload.getRequest().getParameter("uname");
        System.out.println("+uname="+uname);
//跳转界面
        req.getRequestDispatcher("/success.jsp").forward(req,resp);

    }
}

smartupLoad实现文件上传(最全) 包会