上传文件
<body>
<!-- enctype="multipart/form-data"以二进制方式提交表单 -->
<form action="doindex.jsp" enctype="multipart/form-data" method="post">
用户名:<input type="text" name="iname"></br>
头像:<input type="file" name="ifile" multiple="multiple"></br>
<input type="submit" value="注册">
<input type="reset" value="登录">
</form>
</body>
拿表单的其他值:Request
//拿到表单的其他值
Request req=su.getRequest();
String name=req.getParameter("iname");
out.print("用户名"+name);
一.单文件上传
只能上传一个
//实例化
SmartUpload su = new SmartUpload();
//初始化 pageContext是jsp的九大内置对象之一 作用域仅限于当前的jsp页面
su.initialize(pageContext);
//设置相关要求
su.setCharset("utf-8");//设置编码方式
su.setAllowedFilesList("jpg,png,jpeg,gif");//设置允许上传的文件类型 用逗号隔开
su.setDeniedFilesList("exe,jsp,js,bat");//设置禁止上传的文件类型
su.setMaxFileSize(1024 * 1024 * 2);//B 设置文件的最大大小 不超过2M
//设置相关服务器内存
su.upload();
1.自动上传
//--自动找web项目的根目录
String path = "images/";
//获取文件
File file = su.getFiles().getFile(0);
//判断
if (!file.isMissing()) {//上传了文件
//设置文件的编码方式
file.setCharset("utf-8");
path += file.getFieldName();//拼接上原有的文件名 images/2.gif
file.saveAs(path, SmartUpload.SAVE_VIRTUAL);//自动找web项目的根目录
}
out.print(path);
2.手动上传
--手动找web项目的根目录
/* String path="images/";
//F:\javaWeb作业\javaWeb01\.metadata\.plugins\org.eclipse.wst.server.core\tmp2\wtpwebapps\q6\
String webPath=this.getServletContext().getRealPath("/");
//获取文件
File file = su.getFiles().getFile(0);
//判断
if (!file.isMissing()) {//上传了文件
//设置文件的编码方式
file.setCharset("utf-8");
path += file.getFileName();//拼接上原有的文件名 images/2.gif
file.saveAs(webPath+path);//自动找web项目的根目录
}
out.print(webPath+path);
二.多文件上传
//先拿到所有的文件
Files fs=su.getFiles();
//先拿到总数目
for(int i=0;i<fs.getCount();i++){
//依次拿到每一个文件 依次进行上传
File file=fs.getFile(i);
String path = "images/";
//判断
if (!file.isMissing()) {//上传了文件
//设置文件的编码方式
file.setCharset("utf-8");
path += file.getFileName();//拼接上原有的文件名 images/2.gif
file.saveAs(path, SmartUpload.SAVE_VIRTUAL);//自动找web项目的根目录
}
out.print(path+"<br/>");
}