//导入相关的包
<%@page import="java.io.*,java.util.*,org.apache.commons.fileupload.*" %>
<%@page import="org.apache.commons.fileupload.disk.DiskFileItemFactory" %>
<%@page import="org.apache.commons.fileupload.servlet.ServletFileUpload" %>
boolean bRet = false; boolean bUpload = false; String uploadFileName = ""; String fieldName = ""; News news = new News();//实例化封装属性的News对象 news.setCreatedate(new Date());//新闻创建时间 //读取request请求,判断是否 是多部分表达提交(二进制进行数据传输,可能是普通表单,也可能是包含文件表单) boolean isMultipart=ServletFileUpload.isMultipartContent(request); //获得文件夹的位置(上传的图片保存在该文件夹中) String uploadFilePath = request.getSession().getServletContext().getRealPath("/upload/" ); if (isMultipart == true) { //创建FileItemFactory实例 FileItemFactory factory = new DiskFileItemFactory(); //创建ServletFileUpload实例 ServletFileUpload upload = new ServletFileUpload(factory); try { //解析Request请求中的数据(返回一个集合)获取客户端提交过来的所有表单元素 List<FileItem> items = upload.parseRequest(request); for(FileItem item:items){ //判断表单元素类型,true为普通表单元素,false为文件 if (item.isFormField()){ //获取表单元素名字 fieldName = item.getFieldName(); //如果表单元素名字为title(判断元素 名称 与表单元素的对应关系) if (fieldName.equals("title")){ //设置编码为UTF-8 news.setTitle(item.getString("UTF-8")); }else if(fieldName.equals("id")){ String id = item.getString(); if (id != null && !id.equals("")){ //转换为Int类型 news.setId(Integer.parseInt(id)); } }else if (fieldName.equals("categoryId")){ news.setCateforyId(Integer.parseInt(item.getString())); }else if (fieldName.equals("summary")){ news.setSummary(item.getString("UTF-8")); }else if (fieldName.equals("newscontent")){ news.setContent(item.getString("UTF-8")); }else if(fieldName.equals("author")){ news.setAuthor(item.getString("UTF-8")); } }else{ //读取文件元素的名称 String fileName = item.getName(); if (fileName != null && !fileName.equals("")) { //获取上传文件的名称,并通过名称创建一个新File实例 File fullFile = new File(item.getName()); //从路径中提取文件本身名称,并构建一个新的file实例 File saveFile = new File(uploadFilePath, fullFile.getName()); //写入文件,开始 上传 item.write(saveFile); //获取上传文件名称 uploadFileName = fullFile.getName(); //新闻对象中保存上传文件名称 news.setPicpath(uploadFileName); //上传图片 bUpload = true; } } } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } System.out.println("上传成功后的文件名是::"+news.getPicpath()); //调用后台方法,将新闻信息插入数据库 bRet=newsService.addNews(news); %> <% if (bRet) { //新闻添加成功跳转新闻列表页 response.sendRedirect("newsDetailList.jsp"); } else { //失败跳转到新闻添加的页面 response.sendRedirect("newsDetailCreate.jsp"); } %>
时间: 2024-10-14 00:51:23