103 lines
4.2 KiB
Plaintext
103 lines
4.2 KiB
Plaintext
<%@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<FileItem> 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"%> |