📄 personfileupload.jsp
字号:
<%@page language="java" contentType="text/html;charset=GBK"%>
<%@page import="java.util.*,java.text.*,java.io.*,oa.main.DealString,com.jspsmart.upload.*,java.io.File,oa.bean.*,java.sql.*"%>
<%
//定义可以上传的文件类型(根据扩展名)
//String [] fileType={"ZIP","RAR","MP3","RM","AVI","DAT","DOC","WPS","PDF","XLS","PPT","CHM","EXE"};
//定义可以上传的单个文件大小(第一个数字的单位为M)
//int nMaxFileSize=0;//定义为10M大小的文件=10*1024*1024
//数据处理过程
oa.bean.PersonFileBean myFileBean = null;
oa.bean.MailBean mlBean = null;
DocBean doc = null;
oa.bean.RightBean rb = null;
try{
myFileBean = new oa.bean.PersonFileBean();
mlBean = new oa.bean.MailBean();
DealString ds = new DealString();
doc=new DocBean();
rb = new oa.bean.RightBean();
if ( mlBean.getConn() == null
|| doc.getConn() == null
|| rb.getConn() == null)
{
%>
数据库无法响应,请<a href="javascript:window.history.back(-1);">返回</a>重试
<%out.close();
}
//取得职工号
String strPersonNo = ds.toString((String)session.getAttribute("zgbh"));
//String strPersonNo = ds.toString((String)request.getParameter("txt_personno"));
//取得命令动词
String strCMD = ds.toString((String)request.getParameter("txt_cmd"));
//取得文件根号
String strParentID = ds.toString((String)request.getParameter("txt_parentID"));
if (strParentID.equals("")) strParentID="0";//根文件夹
//取得文件号
String strFileID = ds.toString((String)request.getParameter("txt_fileID"));
if (strFileID.equals("")) strFileID="0";//根文件夹
String args="txt_parentID="+strParentID+"&txt_fileID="+strFileID;
rb.setUID(strPersonNo);
String strTotalSpace = rb.getConfValue("文件柜大小");
int nUsed = myFileBean.getUsedSpace(strPersonNo);
int nTotal = Integer.parseInt(strTotalSpace);
int nTotalByte = nTotal*1024*1024;
int nMaxFileSize = nTotalByte - nUsed;
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GBK">
<title>文件上传</title>
<link href="../css/person.css" type=text/css rel=stylesheet>
</head>
<Script>
function UpLoad_Perform(){
document.all.formFile.action = "personFileUpload.jsp?<%=args%>&txt_cmd=UPLOAD_PERFORM";
document.all.formFile.submit();
}
function backToParent(){
opener.form1.txt_cmd.value = "";
opener.form1.action = "personFile.jsp";
opener.form1.submit();
window.close();
}
</Script>
<BODY bgColor=menu topmargin=15 leftmargin=15 ><CENTER>
<%
// out.println((String)request.getRealPath("\\"));
//执行上传文件选择动作------------------------------------------------------------------------------>
if (strCMD.equals("UPLOAD")) {
%>
<q>文件柜目前允许上传
<%
/*
for(int i=0;i<fileType.length;i++){
out.print(fileType[i]);
if(i<fileType.length-1) out.print(",");
}
*/
%>的空间为<%=mlBean.convert(nMaxFileSize)%></q>
<form name="formFile" method="post" action="/personFileUpload.jsp" enctype="multipart/form-data" >
<FIELDSET align=left>
<LEGEND align=left>文件上传</LEGEND>
文件:<input type="file" name="filename" size=20>
<input type="button" value="上传" onclick="UpLoad_Perform()">
</fieldset></form>
<%
}
//上传文件选择完毕------------------------------------------------------------------------------------>
//执行上传动作并返回调用页面(父页面)-------------------------------------------------------------------->
if (strCMD.equals("UPLOAD_PERFORM")){
// 新建一个SmartUpload对象
SmartUpload su = null;
// 上传初始化
// 3.设定允许上传的文件(通过扩展名限制),仅允许doc,txt文件。
// 4.设定禁止上传的文件(通过扩展名限制),禁止上传带有exe,bat,jsp,htm,html扩展名的文件和没有扩展名的文件。
// su.setDeniedFilesList("exe,bat,jsp,htm,html,,");
%>
<input type="button" value=" 返 回 " name="B3" onclick="backToParent()">
<%
try{
// 上传文件
su = new SmartUpload();
su.initialize(config,request,response);
/////////////////////////////////////////////////
su.setTotalMaxFileSize(10240000);
/////////////////////////////////////////////////
su.upload();
// 将上传文件全部保存到指定目录
String NewFileName="";
String RealFileName = "";
for (int i=0;i<su.getFiles().getCount();i++){
com.jspsmart.upload.File file = su.getFiles().getFile(i);
// 若文件不存在则继续
if (file.isMissing()) continue;
//int count = su.save("oa/person/upload/",su.SAVE_VIRTUAL);
//out.println(count+"个文件上传成功!<br>");
// 利用Request对象获取参数之值
// 逐一提取上传文件信息,同时可保存文件。
// 显示当前文件信息
out.println("<TABLE BORDER=1>");
out.println("<TR><TD>文件名</TD><TD>" + file.getFileName() + "</TD></TR>");
out.println("<TR><TD>文件长度</TD><TD>" + file.getSize() + "</TD></TR>");
out.println("<TR><TD>文件扩展名</TD><TD>" + file.getFileExt() + "</TD></TR>");
out.println("<TR><TD>文件全名</TD><TD>"+ file.getFilePathName() + "</TD></TR>");
out.println("</TABLE><BR>");
//将文件信息写入到数据库中---------------------------------------------------------------->
myFileBean.setPersonID(strPersonNo);
myFileBean.setParentID(strParentID);
String strFileName = ds.toString(file.getFileName());
RealFileName = strFileName;
String strFileExt = ds.toString(file.getFileExt());
String strFileSize = ds.toString(Integer.toString(file.getSize()));
String strFileStorePath = myFileBean.getFileStorePath();
String strFileStoreName = myFileBean.getNewStoreFileName(file.getFileName());
NewFileName = strFileStoreName;
//年月日分类
//初始化年月
String upmonth = ds.getDateTime();
//新建目录
String saveDirectory = strFileStorePath;
java.io.File f = new java.io.File(saveDirectory+upmonth.substring(0,4));
if(!f.exists())
{
f.mkdir();
}
f = new java.io.File(saveDirectory+upmonth.substring(0,4)+"\\"+upmonth.substring(5,7));
if(!f.exists())
{
f.mkdir();
}
f = new java.io.File(saveDirectory+upmonth.substring(0,4)+"\\"+upmonth.substring(5,7)+"\\"+upmonth.substring(8,10));
if(!f.exists())
{
f.mkdir();
}
strFileStoreName=new String(upmonth.substring(0,4)+"\\"+upmonth.substring(5,7)+"\\"+upmonth.substring(8,10)+"\\"+strFileStoreName);
String strFileFullPath = strFileStorePath + strFileStoreName;
//out.println("BEAN:"+myFileBean.FilesPath);
//out.println(strFileStorePath);
// 另存到以WEB应用程序的根目录为文件根目录的目录下
//out.println(strFileFullPath);
file.saveAs(strFileFullPath ,su.SAVE_PHYSICAL);
//out.print(strFileFullPath);
//写入库
myFileBean.addFile(strFileName,strFileExt,strFileSize,strFileStoreName);
//数据库写入完毕------------------------------------------------------------------------->
//存入文件
// 另存到操作系统的根目录为文件根目录的目录下
// file.saveAs("c:\temp\" + myFile.getFileName(),su.SAVE_PHYSICAL);
}//end for i
//判断上传的文件是否超出规定的大小,如果超出,将其删除
if (myFileBean.getUsedSpace(strPersonNo)>nTotalByte){
java.io.File file=new java.io.File("d:\\uploads\\personfiles\\"+NewFileName);
if (file.exists()){
file.delete();
}
String str="delete from zz_grwjb where zgbh='"+strPersonNo+"' and wjlj like '%"+NewFileName+"%'";
doc.ExecuteSQL(str);
%>
<script language=javascript>
alert("您上传的文件大小超过了规定值!");
</script>
<%
}
else{
%>
<script language=javascript>
backToParent();
</script>
<%
}
}catch(Exception e){
oa.main.Logger.log("ERROR:cominfo.add.article.upfile.jsp=>");
e.printStackTrace(oa.main.Logger.log);
//////////////////////////////////////////////////
out.print("文件太大,无法上传"+e);
/////////////////////////////////////////////////
}
finally{
///////////////////////////////////////////////
su.stop();
su=null;
System.gc();
//////////////////////////////////////////////////
}
}
%>
</body>
</html>
<%}catch(Exception e){oa.main.Logger.log("ERROR:oa.person.personFileUpload.jsp=>");e.printStackTrace(oa.main.Logger.log);}
finally{
if(rb!=null) rb.closeConn();
if(myFileBean!=null)myFileBean.closeConn();
if(mlBean!=null) mlBean.closeConn();
if(doc!=null) doc.closeConn();
}
%>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -