?? 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();
//取得職工號
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 = new SmartUpload();
// 上傳初始化
su.initialize(pageContext);
// 設定上傳限制
// 1.限制每個上傳文件的最大長度。
//su.setMaxFileSize(nMaxFileSize);////////////////////
// 2.限制總上傳數據的長度。
su.setTotalMaxFileSize(nTotalByte);
// 3.設定允許上傳的文件(通過擴展名限制),僅允許doc,txt文件。
/*
String strFilesAllowed="";
for(int i=0;i<fileType.length;i++){
strFilesAllowed+=fileType[i].toLowerCase();
strFilesAllowed+=",";
strFilesAllowed+=fileType[i].toUpperCase();
strFilesAllowed+=",";
strFilesAllowed+=fileType[i];
if(i<fileType.length-1) strFilesAllowed+=",";
}
su.setAllowedFilesList(strFilesAllowed);
*/
// 4.設定禁止上傳的文件(通過擴展名限制),禁止上傳帶有exe,bat,jsp,htm,html擴展名的文件和沒有擴展名的文件。
// su.setDeniedFilesList("exe,bat,jsp,htm,html,,");
%>
<input type="button" value=" 返 回 " name="B3" onclick="backToParent()">
<%
try{
// 上傳文件
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.print(strFileFullPath);
//寫入庫
myFileBean.addFile(strFileName,strFileExt,strFileSize,strFileStoreName);
//數據庫寫入完畢------------------------------------------------------------------------->
//存入文件
// 另存到以WEB應用程序的根目錄為文件根目錄的目錄下
file.saveAs(strFileFullPath ,su.SAVE_PHYSICAL);
// 另存到操作系統的根目錄為文件根目錄的目錄下
// 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 news.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){
out.println("<span align='center'>錯誤:網絡連接錯誤或非法的上傳文件,請檢查您上傳的文件大小!"+e.getMessage()+"</span><br><br>");
}
}
%>
</body>
</html>
<%}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 + -