使用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();
}
}
}
特别注意:
-
form标签中要添加enctype属性
-
提交方式必须是post
-
此时如果表单中有其他数据时,不能通过request直接获取,需要通过SmartUpload对象获取
String name=su.getRequest().getParameter(“uame”);
-
在当前web文件夹下创建uploadfile文件夹用户存储上传文件时要额外在uploadfile文件夹下创建一个其他文件,因为程序编译时空文件夹不会被编译进out文件夹
-
getPageContext()方法的参数
夹下创建一个其他文件,因为程序编译时空文件夹不会被编译进out文件夹
- getPageContext()方法的参数