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

使用smartupload.jar实现文件上传

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

使用smartupload.jar实现文件上传

需导入smartupload.jar 包

前端页面:

<form action="/UploadServlet" method="post" enctype="multipart/form-data">
   名称:<input type="text" name="uname"><br>
   文件:<input type="file" name="myfile"><br>
   <input type="submit" value="提交">
 </form>

后台代码:

@WebServlet(name = "UploadServlet", value = "/UploadServlet")

public class UploadServlet extends HttpServlet {
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
       //1.创建上传对象
        SmartUpload upload=new SmartUpload();
        //2.初始化
        PageContext pageContext = JspFactory.getDefaultFactory().getPageContext(this, req, resp, null, false, 1024, true);
        upload.initialize(pageContext);
        //3.设置编码方式
        upload.setCharset("utf-8");
        //4.上传
        try {
            upload.upload();
        } catch (SmartUploadException e) {
            e.printStackTrace();
        }
        //5.得到传来的文件
        File file = upload.getFiles().getFile(0);
        //6.得到文件名称
        String fileName = file.getFileName();
        //7.指定保存路径
        String url="uploadfile/"+fileName;
        //8.保存文件
        try {
            file.saveAs(url,SmartUpload.SAVE_VIRTUAL);
        } catch (SmartUploadException e) {
            e.printStackTrace();
        }
    }
}

特别注意:

  1. form标签中要添加enctype属性

  2. 提交方式必须是post

  3. 此时如果表单中有其他数据时,不能通过request直接获取,需要通过SmartUpload对象获取

    String name=su.getRequest().getParameter(“uame”);

  4. 在当前web文件夹下创建uploadfile文件夹用户存储上传文件时要额外在uploadfile文件夹下创建一个其他文件,因为程序编译时空文件夹不会被编译进out文件夹

  5. getPageContext()方法的参数

夹下创建一个其他文件,因为程序编译时空文件夹不会被编译进out文件夹

  1. getPageContext()方法的参数

使用smartupload.jar实现文件上传

相关标签: java