⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 personfileupload.jsp

📁 运用jdk
💻 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 + -