哪位高手有上传图片并保存到数据库的servlet代码。页面是html
谁有上传图片并保存到数据库的servlet代码。页面是html
如题。
如果有把图片和其他信息一块添加到数据库的代码万分感谢,不管有没有在此先感谢各位。
------解决思路----------------------
既有的代码很多啊 自己搜一下呗
参考:http://blog.****.net/dunhanson/article/details/9723001
------解决思路----------------------
看你的需求 大概是 上传一张图片 然后把图片的路径保存到数据库的表中的某个字段 就这样吧。
------解决思路----------------------
用的apache的commons-fileupload
------解决思路----------------------
少jar包了吧,看看是哪个,加上就好了
------解决思路----------------------
顶一个
如题。
如果有把图片和其他信息一块添加到数据库的代码万分感谢,不管有没有在此先感谢各位。
------解决思路----------------------
既有的代码很多啊 自己搜一下呗
参考:http://blog.****.net/dunhanson/article/details/9723001
------解决思路----------------------
看你的需求 大概是 上传一张图片 然后把图片的路径保存到数据库的表中的某个字段 就这样吧。
------解决思路----------------------
package com;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import javax.servlet.ServletConfig;
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.FileUploadBase.SizeLimitExceededException;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
public class FileUploadServlet extends HttpServlet {
public void init(ServletConfig servletConfig)throws ServletException {
super.init(servletConfig);
}
public void destory() {
super.destroy();
}
public void doGet(HttpServletRequest request, HttpServletResponse response)throws IOException {
doPost(request, response);
}
public void showMessage(String message, HttpServletResponse response) {
try {
PrintWriter out = response.getWriter();
out.print("<script type='text/javascript'>alert('" + message + "');</script>");
}catch(Exception e) {
e.printStackTrace();
}
}
public void doPost(HttpServletRequest request, HttpServletResponse response)throws IOException {
final long MAX_SIZE = 5 * 1024 * 1024; //上传文件最大不超过5MB
//设置编码格式支持中文显示
request.setCharacterEncoding("UTF-8");
response.setContentType("text/html");
response.setCharacterEncoding("UTF-8");
//实例化一个硬盘工厂,用于创建ServletFileUpload对象
DiskFileItemFactory diskFileItemFactory = new DiskFileItemFactory();
diskFileItemFactory.setSizeThreshold(4096); //设置文件临时存放的内存大小为4KB,多余部分将临时存放在硬盘
diskFileItemFactory.setRepository(new File("D:/temp")); //设置文件临时存放目录
//用上述硬盘工厂实例化一个文件上传对象
ServletFileUpload servletFileUpload = new ServletFileUpload(diskFileItemFactory);
servletFileUpload.setSizeMax(MAX_SIZE); //设置上传文件最大值
PrintWriter out = response.getWriter();
List fileList = new ArrayList();
try {
fileList = servletFileUpload.parseRequest(request);
//解决上传文件为空的错误
if(fileList == null
------解决思路----------------------
fileList.size() == 0) {
showMessage("未选择文件,请选择!", response);
return;
}
}catch(FileUploadException e) {
//捕捉超过最大值的异常并显示错误提示
if(e instanceof SizeLimitExceededException) {
showMessage("文件过大,无法上传!", response);
return;
}
showMessage("上传失败,请检查网络状况或联系相关技术人员!", response);
e.printStackTrace();
}
Iterator fileIter = fileList.iterator(); //得到文件List的迭代器,以下进行保存文件操作
while(fileIter.hasNext()) {
FileItem fileItem;
fileItem = (FileItem) fileIter.next();
//忽略不是文件域的表单字段
if(fileItem == null
------解决思路----------------------
fileItem.isFormField()) {
continue;
}
if(fileItem.getSize() != 0) {
File newFile = new File("D:/images/" + fileItem.getName());
try {
//保存文件
fileItem.write(newFile);
}catch(Exception e) {
showMessage("上传失败,请检查网络状况或联系相关技术人员!", response);
e.printStackTrace();
}
}else {
showMessage("文件内容为空,请检查!", response);
return;
}
showMessage("文件上传成功!", response);
}
}
}
用的apache的commons-fileupload
------解决思路----------------------
少jar包了吧,看看是哪个,加上就好了
------解决思路----------------------
这个有问题。 package com;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import javax.servlet.ServletConfig;
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.FileUploadBase.SizeLimitExceededException;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
public class FileUploadServlet extends HttpServlet {
public void init(ServletConfig servletConfig)throws ServletException {
super.init(servletConfig);
}
public void destory() {
super.destroy();
}
public void doGet(HttpServletRequest request, HttpServletResponse response)throws IOException {
doPost(request, response);
}
public void showMessage(String message, HttpServletResponse response) {
try {
PrintWriter out = response.getWriter();
out.print("<script type='text/javascript'>alert('" + message + "');</script>");
}catch(Exception e) {
e.printStackTrace();
}
}
public void doPost(HttpServletRequest request, HttpServletResponse response)throws IOException {
final long MAX_SIZE = 5 * 1024 * 1024; //上传文件最大不超过5MB
//设置编码格式支持中文显示
request.setCharacterEncoding("UTF-8");
response.setContentType("text/html");
response.setCharacterEncoding("UTF-8");
//实例化一个硬盘工厂,用于创建ServletFileUpload对象
DiskFileItemFactory diskFileItemFactory = new DiskFileItemFactory();
diskFileItemFactory.setSizeThreshold(4096); //设置文件临时存放的内存大小为4KB,多余部分将临时存放在硬盘
diskFileItemFactory.setRepository(new File("D:/temp")); //设置文件临时存放目录
//用上述硬盘工厂实例化一个文件上传对象
ServletFileUpload servletFileUpload = new ServletFileUpload(diskFileItemFactory);
servletFileUpload.setSizeMax(MAX_SIZE); //设置上传文件最大值
PrintWriter out = response.getWriter();
List fileList = new ArrayList();
try {
fileList = servletFileUpload.parseRequest(request);
//解决上传文件为空的错误
if(fileList == null
------解决思路----------------------
fileList.size() == 0) {
showMessage("未选择文件,请选择!", response);
return;
}
}catch(FileUploadException e) {
//捕捉超过最大值的异常并显示错误提示
if(e instanceof SizeLimitExceededException) {
showMessage("文件过大,无法上传!", response);
return;
}
showMessage("上传失败,请检查网络状况或联系相关技术人员!", response);
e.printStackTrace();
}
Iterator fileIter = fileList.iterator(); //得到文件List的迭代器,以下进行保存文件操作
while(fileIter.hasNext()) {
FileItem fileItem;
fileItem = (FileItem) fileIter.next();
//忽略不是文件域的表单字段
if(fileItem == null
------解决思路----------------------
fileItem.isFormField()) {
continue;
}
if(fileItem.getSize() != 0) {
File newFile = new File("D:/images/" + fileItem.getName());
try {
//保存文件
fileItem.write(newFile);
}catch(Exception e) {
showMessage("上传失败,请检查网络状况或联系相关技术人员!", response);
e.printStackTrace();
}
}else {
showMessage("文件内容为空,请检查!", response);
return;
}
showMessage("文件上传成功!", response);
}
}
}
用的apache的commons-fileupload报这个错。
少jar包了吧,看看是哪个,加上就好了