fileupload图片上传到指定文件夹
来源:互联网 发布:nb iot网络架构 编辑:程序博客网 时间:2024/06/05 00:22
用fileupload上传图片到工目录。并用时间格式重命名文件,然后把文件名写进数据库。供前后台调用
1.前台JSP 表单提交 重点:method="post" enctype="multipart/form-data"
<formname="myform"action="imgupload.action?name=<%=saler.getName()%>" method="post" enctype="multipart/form-data" class="myform">
<br>
<span>上传或修改图片,1M以内!</span>
<inputtype="file"name="myfile"><br>
<inputtype="submit"name="submit"value=" 确 定 "/>
</form>
2.后台servlet 请无视对你无用的包、
packagefileupload;
import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.Statement;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Iterator;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import util.DBUtil;
@SuppressWarnings("serial")
publicclass Uploadextends HttpServlet {
private StringuploadPath = "C:\\Users\\lonec\\OneDrive\\EatIt\\EatIt\\WebRoot\\images";// 上传文件的目录
private StringtempPath ="C:\\Users\\lonec\\OneDrive\\EatIt\\EatIt\\WebRoot\\images\\buffer";// 临时文件目录
File tempPathFile;
@SuppressWarnings("unchecked")
publicvoid doPost(HttpServletRequestrequest, HttpServletResponseresponse)
throws IOException, ServletException {
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
try {
// Create a factory for disk-based fileitems
DiskFileItemFactory factory = new DiskFileItemFactory();
// Set factory constraints
factory.setSizeThreshold(4096);// 设置缓冲区大小,这里是 4kb
factory.setRepository(tempPathFile);// 设置缓冲区目录
// Create a new file upload handler
ServletFileUpload upload = new ServletFileUpload(factory);
upload.setHeaderEncoding("utf-8");
// Set overall request size constraint
upload.setSizeMax(1048576);// 设置最大文件尺寸,这里是 4MB
List<FileItem> items = upload.parseRequest(request);//得到所有的文件
Iterator<FileItem> i = items.iterator();
String imgnameString0=null;
if (i.hasNext()) {
FileItem fi = (FileItem) i.next();
String fileName = fi.getName();
if (fileName !=null&&(fileName.endsWith(".jpg")||fileName.endsWith(".JPG")||fileName.endsWith(".png")||fileName.endsWith(".PNG"))) {
System.out.println(fi);
DateFormat df = new SimpleDateFormat("yyyyMMddHHmmss");
Calendar calendar = Calendar.getInstance();
String imageName = df.format(calendar.getTime());
String endname=imageName+".jpg"; // 统一转化成jpg文件
System.out.println(imageName);
imgnameString0=endname;
File savedFile = new File(uploadPath,endname);
System.out.println(savedFile);
fi.write(savedFile);
}else{
out.println("<script>alert('请上传正确的文件类型!');history.go(-1);</script>");
}
}
//写进数据库
String[] imgnameString = imgnameString0.split("\\.");
System.out.println(imgnameString[0]);
Connection conn=null;
Statement ps=null;
String salername=request.getParameter("name");
byte[]sn = salername.getBytes("iso-8859-1");
salername =new String(sn,"utf-8");
String sqlString=" UPDATE EatIt_Saler SET imgName ='"+imgnameString[0]+"' WHERE name ='"+salername+"'";
try {
conn=DBUtil.getConnection();
ps=conn.createStatement();
ps.executeUpdate(sqlString);
} catch (Exceptione) {
e.printStackTrace();
}
//成功后页面跳转,并且刷新
String page="published.do?name="+salername; //published.do?name=<%=saler.getName()%>setTimeout();
out.println("<script>alert('上传成功!'); window.location.href=\""+page+"\"; </script>");//页面带参数跳转
} catch (Exceptione) {
//可以跳转出错页面
System.out.print("失败:图片大小超过1M! ");
out.println("<script>alert('图片大小超过1M!');history.go(-1);</script>");
/*e.printStackTrace(); */
}
}
publicvoid init()throws ServletException {
File uploadFile = new File(uploadPath);
if (!uploadFile.exists()) {
uploadFile.mkdirs();
}
File tempPathFile = new File(tempPath);
if (!tempPathFile.exists()) {
tempPathFile.mkdirs();
}
}
}
3.servlet 配置 web.xml文件 、无用的部分已经删除
<?xmlversion="1.0"encoding="UTF-8"?>
<web-appversion="2.5"xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaeehttp://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<display-name>file</display-name>
<servlet>
<servlet-name>Upload</servlet-name>
<servlet-class>fileupload.Upload</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Upload</servlet-name>
<url-pattern>/imgupload.action</url-pattern>
</servlet-mapping>
</web-app>
- fileupload图片上传到指定文件夹
- C#上传图片到指定文件夹
- FileUpload上传文件同时将文件保存到指定文件夹(附带判断上传文件大小)
- 图片文件上传到网站的指定的文件夹
- FileUpload 控件 上传图片 到服务器
- common-fileUpload 上传图片到服务器端
- FileUpload控件上传图片到数据库
- FileUpload控件上传图片并保存在文件夹中
- c#上传图片到文件夹
- asp 上传图片到文件夹
- java上传图片到文件夹
- FileUpload上传指定格式的图片并重命名
- 上传图片到指定服务器
- fileupload实现上传文件到服务器文件夹下
- asp.net 用FileUpload上传文件到文件夹
- 上传指定文件夹到ftp服务器上
- 使用Struts2实现图片上传到服务器指定的文件夹中
- 请教如何将一个文件夹中的所有图片上传到指定目录
- C#-猜数游戏
- String,StringBuffer与StringBuilder的区别
- Git Book (看他就够了)
- FFmpeg数据结构和库简介和简单分析
- JSTL动态加载单选框--【ssnc】
- fileupload图片上传到指定文件夹
- PostgreSQL数据库压力测试工具pgbench简单应用
- 常见面试算法之转圈打印矩阵
- 适用的php代码段
- windows环境下zookeeper 安装介绍
- MySQL的备份与过滤
- 类加载执行子系统
- 安卓基础(十九)
- LeetCode 104 Maximum Depth of Binary Tree(二叉树的最大深度)