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

时间:2024-10-20 11:28:24

1、前端JS代码:<script type="text/javascript"> $(function() { $("#uploader").pluploadQueue({ runtimes : 'html4,html5,flash',//设置运行环境,会按设置的顺序,可以选择的值有html5,gears,flash,silverlight,browserplus,html4 flash_swf_url : '<%=basePath %>/js/lib/plupload_1_5_7/plupload/js/plupload.flash.swf',// Flash环境路径设置 silverlight_xap_url : '<%=basePath %>/js/lib/plupload_1_5_7/plupload/js/plupload.silverlight.xap',//silverlight环境路径设置 url : '<%=basePath %>/UploadServlet',//上传文件路径 max_file_size : '3gb',//100b, 10kb, 10mb, 1gb chunk_size : '1mb',//分块大小,小于这个大小的不分块 unique_names : true,//生成唯一文件名 // 如果可能的话,压缩图片大小 // resize : { width : 320, height : 240, quality : 90 }, // 指定要浏览的文件类型 filters : [ { title : 'Image files', extensions : 'jpg,png,3gp,mp4,tif' }, { title : 'files', extensions : 'bin,txt,doc' } ], init : { FileUploaded : function(up, file, info) {//文件上传完毕触发 //console.info(up); //console.info(file); //console.info(info); var response = $.parseJSON(info.response); if (response.status) { $('#f1').append('文件路径:<input type="text" name="fileUrl" value="'+response.fileUrl+'"/></br>'); $('#f1').append('文件名称:<input type="text" name="fileName" value="'+file.name+'"/></br>'); $('#f1').append('文件类型:<select type="text" name="fileType"><option value="6">测试</option><option value="5">桩机固件下载</option><option value="1">总量黑名单</option></select></br>'); $('#f1').append('版本号:<input type="text" name="fileVersion" value="01"/></br>'); } } } }); }); function submitForm(){ $('#f1').submit(); }</script>

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

2、前端HTML代码:<body> <form id="f1" action="<%=basePath %>systemManage/saveFileMessage!saveFileMessage.action" method="post"> <table border="0" style="width: 100%;"> <tr> <td colspan="2"> <div id="uploader" style="width: 100%">您的浏览器没有安装Flash插件,或不支持HTML5!</div> <!-- <button onclick="$('#uploader').pluploadQueue().start();">开始上传</button> <button onclick="$('#uploader').pluploadQueue().stop();">停止上传</button> --> </td> </tr> </table> </form> <br> <a id="btn" href="javascript:void(0)" class="easyui-linkbutton" data-options="iconCls:'icon-save'" onclick="submitForm()">保存</a></body>

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

3、WEB.xml 添加 SERVLT UploadServlet

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

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<FileItem> 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<String, Object> m = new HashMap<String, Object>(); 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<String, Object> m = new HashMap<String, Object>(); m.put("status", false); response.getWriter().write(JSONObject.fromObject(m).toString()); } catch (Exception e) { e.printStackTrace(); Map<String, Object> m = new HashMap<String, Object>(); 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(); } }}

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

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] + "<br/>"; 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( "<script>alert('" + resultString + "');</script>"); response.getWriter().print( "<script>parent.location.reload();</script>"); } catch (Exception e) { log.error("文件上传失败"+e.getMessage()); } } } catch (Exception e) { log.error("文件上传失败"+e.getMessage()); } }

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

6、完成

JAVA plupload后台如何获取文件名、实例
© 手抄报圈