<%@page import="java.io.File" %><%@page import="org.apache.commons.io.FileUtils" %><%@page import="com.amarsoft.are.jbo.BizObject" %><%@page import="com.amarsoft.are.jbo.BizObjectManager" %><%@page import="com.amarsoft.are.jbo.JBOFactory" %><%@page import="org.apache.commons.fileupload.FileItem" %><%@page import="org.apache.commons.fileupload.servlet.ServletFileUpload" %><%@page import="org.apache.commons.fileupload.disk.DiskFileItemFactory" %><%@page import="java.net.URLDecoder" %><%@page import="com.amarsoft.are.jbo.impl.BizObjectTableMapper" %><%@page import="com.amarsoft.awe.util.DBKeyHelp" %><%@page import="com.amarsoft.awe.common.attachment.*" %><%@ page contentType="text/html; charset=GBK" %><%@ include file="/IncludeBeginMDAJAX.jsp"%><% //1.创建DiskFileItemFactory对象,配置缓存用 DiskFileItemFactory diskFileItemFactory = new DiskFileItemFactory(); // 2. 创建 ServletFileUpload对象 ServletFileUpload servletFileUpload = new ServletFileUpload(diskFileItemFactory); // 3. 设置文件名称编码 servletFileUpload.setHeaderEncoding("utf-8"); List items = servletFileUpload.parseRequest(request); String libraryId = "";//附件业务数据表编号 String inputTime = StringFunction.getTodayNow(); //附件编号上传时间 String fileSize = ""; //文件大小 String contentType = ""; //文件类型 String fileName = ""; //文件名称 String fileId = ""; String objectType = ""; InputStream is = null; for (FileItem fileItem : items) { if (fileItem.isFormField()) { // >> 普通数据 String fieldValue = fileItem.getString("utf-8"); String fieldName = fileItem.getFieldName(); if("LibraryId".equals(fieldName)) { libraryId = fieldValue; } else if("size".equals(fieldName)) { fileSize = fieldValue; } else if("name".equals(fieldName)) { fileName = fieldValue; } else if("type".equals(fieldName)) { contentType = fieldValue; } else if("id".equals(fieldName)) { fileId = fieldValue; } else if("ObjectType".equals(fieldName)) { objectType = fieldValue; } ARE.getLog().info(fieldName + ": " + fieldValue); } else { //获取文件的实际内容 is = fileItem.getInputStream(); } } BizObjectManager libBm = JBOFactory.getBizObjectManager("jbo.app.tenwa.doc.LB_DOCLIBRARY", Sqlca); BizObjectManager attrBm = JBOFactory.getBizObjectManager("jbo.app.tenwa.doc.LB_DOCATTRIBUTE", Sqlca); BizObject lib = libBm.createQuery("id=:id").setParameter("id", libraryId).getSingleResult(false); BizObject attr = attrBm.newObject(); attr.setAttributeValue("Library_Id", libraryId); attr.setAttributeValue("FileName", fileName); attr.setAttributeValue("InputUserId", CurUser.getUserID()); attr.setAttributeValue("InputOrgId", CurUser.getOrgID()); attr.setAttributeValue("InputTime", inputTime); attr.setAttributeValue("objectType", objectType); //定义数据库操作变量 String sFileSavePath = CurConfig.getConfigure("FileSavePath"); if (!"".equals(libraryId)){ try { String uuid = java.util.UUID.randomUUID().toString().replaceAll("-", ""); String sFullPath = com.tenwa.officetempalte.util.FileOperatorUtil.getuploadFileDir(sFileSavePath) + uuid + "_" + fileName; if(Integer.parseInt(fileSize) <= 0){ throw new Exception("上传文件失败,请联系管理员!"); } //保存文件 FileUtils.copyInputStreamToFile(is, new File(sFullPath)); //得到带相对路径的文件名 String sFilePath = sFullPath.replace(sFileSavePath, ""); attr.setAttributeValue("FilePath", sFilePath); attr.setAttributeValue("FullPath", sFullPath); attr.setAttributeValue("Content_Type", contentType); attr.setAttributeValue("FileSize", fileSize); attrBm.saveObject(attr); Sqlca.commit(); }catch(Exception e) { e.printStackTrace(); Sqlca.rollback(); out.print("FAILED"); } out.print(attr.getAttribute("id").getString()); } else { out.print("FAILED"); } %><%@ include file="/IncludeEndAJAX.jsp"%>