多语言展示
当前在线:622今日阅读:19今日分享:20

JAVA plupload后台如何获取文件名、实例

plupload插件上传文件,后台获取文件名
工具/原料
1

plupload插件

2

jquery-1.8.0.min.js

方法/步骤
1

前端JS代码:

2

前端HTML代码:

您的浏览器没有安装Flash插件,或不支持HTML5!

 保存

3

WEB.xml 添加 SERVLT  UploadServlet

4

SERLERT 后台代码:获取文件名import java.io.BufferedOutputStream;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.util.HashMap;import java.util.List;import java.util.Map;import java.util.ResourceBundle;import javax.servlet.ServletConfig;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import net.sf.json.JSONObject;import org.apache.commons.fileupload.FileItem;import org.apache.commons.fileupload.FileUploadException;import org.apache.commons.fileupload.disk.DiskFileItemFactory;import org.apache.commons.fileupload.servlet.ServletFileUpload;import org.apache.commons.io.FileUtils;public class UploadServlet extends HttpServlet { private static final long serialVersionUID = 1L; // String repositoryPath; String uploadPath=''; private static final ResourceBundle bundle = ResourceBundle .getBundle('config'); public UploadServlet() { super(); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setCharacterEncoding('UTF-8'); Integer chunk = null;// 分割块数 Integer chunks = null;// 总分割数 String tempFileName = null;// 临时文件吿 String fileName = ''; BufferedOutputStream outputStream = null; if (ServletFileUpload.isMultipartContent(request)) { try { DiskFileItemFactory factory = new DiskFileItemFactory(); factory.setSizeThreshold(1024); // factory.setRepository(new File(repositoryPath));// 设置临时目录 ServletFileUpload upload = new ServletFileUpload(factory); upload.setHeaderEncoding('UTF-8'); // upload.setSizeMax(5 * 1024 * 1024);// 设置附件朿ħ大小,超过这个大小上传会不成势 List items = upload.parseRequest(request); for (FileItem item : items) { if (item.isFormField()) {// 是文本域 if (item.getFieldName().equals('name')) { tempFileName = item.getString(); } else if (item.getFieldName().equals('chunk')) { chunk = Integer.parseInt(item.getString()); // System.out.println('当前文件块:' + (chunk + 1)); } else if (item.getFieldName().equals('chunks')) { chunks = Integer.parseInt(item.getString()); // System.out.println('文件总分块:' + chunks); } } else {// 如果是文件类垿 if (tempFileName != null) { String chunkName = item.getName(); fileName = item.getName();//真实文件名 if (chunk != null) { chunkName = chunk + '_' + tempFileName; } File savedFile = new File(uploadPath, chunkName); item.write(savedFile); } } } if (chunk != null && chunk + 1 == chunks) { outputStream = new BufferedOutputStream( new FileOutputStream(new File(uploadPath, fileName))); // 遍历文件合并 for (int i = 0; i < chunks; i++) { File tempFile = new File(uploadPath, i + '_' + tempFileName); System.out.println('tempFileName:'+tempFileName); byte[] bytes = FileUtils.readFileToByteArray(tempFile); outputStream.write(bytes); outputStream.flush(); tempFile.delete(); } outputStream.flush(); } //System.out.println('newFileName:'+newFileName); Map m = new HashMap(); System.out.println('newFileName:'+fileName); m.put('status', true); m.put('fileUrl', uploadPath+ '/' ); response.getWriter().write(JSONObject.fromObject(m).toString()); } catch (FileUploadException e) { e.printStackTrace(); Map m = new HashMap(); m.put('status', false); response.getWriter().write(JSONObject.fromObject(m).toString()); } catch (Exception e) { e.printStackTrace(); Map m = new HashMap(); m.put('status', false); response.getWriter().write(JSONObject.fromObject(m).toString()); } finally { try { if (outputStream != null) outputStream.close(); } catch (IOException e) { e.printStackTrace(); } } } } @Override public void init(ServletConfig config) throws ServletException { GetPropertiesPam gp = new GetPropertiesPam(); uploadPath =gp.getGJPath(); File up = new File(uploadPath); if (!up.exists()) { up.mkdir(); } }}

5

获取文件信息,STRUTS 技术:@Action(value = 'saveFileMessage') public void saveFileMessage() throws Exception { log.info('固件保存'); request = ServletActionContext.getRequest(); response = ServletActionContext.getResponse(); String[] fileUrls = request.getParameterValues('fileUrl'); String[] fileNames = request.getParameterValues('fileName'); String[] fileTypes = request.getParameterValues('fileType'); String[] fileVersions = request.getParameterValues('fileVersion'); try { for (int i = 0; i < fileUrls.length; i++) { filemanage = filemanageBusiness.get('from Filemanage where filetypes='+fileTypes[i]); String msg = '文件路径:' + fileUrls[i] + ' 文件名称:' + fileNames[i] + '
'; log.info(msg); filemanage.setSate(0);   filemanage.setFilenames(fileNames[i]); filemanage.setFilepaths(fileUrls[i]); filemanage.setUpdates(new Date()); filemanage.setFileversion(Integer.parseInt(DateUtil.getFileVersion()+fileVersions[i])); filemanage.setFileserials(filemanage.getFileserials()+1); try { filemanageBusiness.save(filemanage); String resultString = '文件' + filemanage.getFilenames() + ',保存成功'; response.setCharacterEncoding('UTF-8'); response.getWriter().print( ''); response.getWriter().print( ''); } catch (Exception e) { log.error('文件上传失败'+e.getMessage()); } } } catch (Exception e) { log.error('文件上传失败'+e.getMessage()); } }

6

完成

推荐信息