#jsp
<tr>
<td align="right">保修卡照片:</td>
<td ><input type="file" height="20px" name="image" id="image"/></td>
<td align="right">保修卡NVM表:</td>
<td><input type="file" name="photo" id="photo"/></td>
</tr>
<tr>
<td align="right">机器照片:</td>
<td><input type="file" name="picture" id="picture"/></td>
<td align="right">登记日期:</td>
<td><input type="date" name="regtime" id="rgtime"/></td>
</tr>
<tr>
<td></td>
<td align="right"><input type="submit" value="添加" /></td>
<td><input type="reset" value="重置"></td>
#dao层
public void addMachine(Machine machine) throws SQLException{
QueryRunner qr=new QueryRunner(C3P0Util.getDataSource());
qr.update("insert into machine_t(id,number,name,model,offer,buytime," +
"company,owner,tel,addr,category,image,photo,picture," +
"regtime) values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)",machine.getId(),machine.getNumber(),
machine.getName(),machine.getModel(),machine.getOffer(),machine.getBuytime(),
machine.getCompany(),machine.getOwner(),machine.getTel(),machine.getAddr(),
machine.getCategory(),machine.getImage(),machine.getPhoto(),machine.getPicture(),machine.getRegtime());
}
#service层
public class MachineServiceImpl implements MachineService {
MachineDao machineDao=new MachineDaoImpl();
public void add(Machine machine) throws SQLException {
machineDao.addMachine(machine);
}
}
#创建一个可以调用的until工具类
public static Machine upload2(HttpServletRequest request,String uploadPath){
//Machine 表单实体类
try {
Machine machine =new Machine();
ConvertUtils.register(new DateLocaleConverter(), Date.class);//日期转换器
BeanUtils.populate(machine, request.getParameterMap());
DiskFileItemFactory factory = new DiskFileItemFactory();//创建一个工厂对象
ServletFileUpload upload = new ServletFileUpload(factory);//创建一个文件上传解析器
upload.setHeaderEncoding("UTF-8"); //解决上传文件乱码问题
if(!ServletFileUpload.isMultipartContent(request)){
return machine;
}
List<FileItem> list = upload.parseRequest(request);
for(FileItem item : list){
if(item.isFormField()){//如果是普通表单文本
String name = item.getFieldName();
String value = item.getString("UTF-8");
// System.out.println(name + "=" + value);
BeanUtils.setProperty(machine, name, value);//封装普通表单文本
}else{
String filename=item.getFieldName();//获取上传文件的属性名
String filedName=item.getName();//获取上传文件的名称
String fileName="";
String fileName1="";
String fileName2="";
String savepath = uploadPath;//上传的路径
//String savePath = this.getServletContext().getRealPath("/upload");
if(filename.equals("image")){
filedName=item.getName();
if(filename!=null&&!filedName.equals("")){
//针对不同浏览器上传格式不同,只保留上传文件的名称部分,并且为了防止文件名称相同被覆盖,赋予一个随机id
filedName=UUID.randomUUID().toString()+filedName.substring(filedName.lastIndexOf("\\")+1);
fileName=filedName;
// System.out.println(fileName);
machine.setImage(fileName);//存入数据库 ps:这里只向数据库保存文件名称
}
}else if(filename.equals("photo")){
filedName=item.getName();
if(filename!=null&&!filedName.equals("")){
filedName=UUID.randomUUID().toString()+filedName.substring(filedName.lastIndexOf("\\")+1);
fileName1=filedName;
// System.out.println(fileName1);
machine.setPhoto(fileName1);
}
}else if(filename.equals("picture")){
filedName=item.getName();
if(filename!=null&&!filedName.equals("")){
filedName=UUID.randomUUID().toString()+filedName.substring(filedName.lastIndexOf("\\")+1);
fileName2=filedName;
// System.out.println(fileName2);
machine.setPicture(fileName2);
}
}
// System.out.println(filename+"="+filedName);
if(filedName==null || filedName.trim().equals("")){
continue;
}
InputStream in = item.getInputStream();//创建一个输入流
FileOutputStream out = new FileOutputStream(savepath + "\\" + filedName);//创建一个输出流
byte buffer[] = new byte[1024];//创建一个缓冲区
int len = 0;
while((len=in.read(buffer))>0){
//使用FileOutputStream输出流将缓冲区的数据写入到指定的目录(savepath + "\\" + filename)当中
out.write(buffer, 0, len);
}
in.close();//关闭输入流
out.close();//关闭输出流
item.delete();//删除临时文件
}
}
return machine;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
#后台servlet
public class MachineServlet extends HttpServlet {
private MachineService service =new MachineServiceImpl();
private void add(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
response.setContentType("text/html; charset=UTF-8");
try {
Machine machine =WebUtils.upload2(request, this.getServletContext().getRealPath("/images"));
machine.setId(UUID.randomUUID().toString());//给表单生成一个随机id 注:数据库使用自增的可去掉这一句
service.add(machine);
request.setAttribute("message", "添加成功!!");
} catch (Exception e) {
e.printStackTrace();
request.setAttribute("message", "添加失败!!");
}
request.getRequestDispatcher("/message.jsp").forward(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}