Posted on 2007-03-29 17:22
skycity 閱讀(645)
評論(0) 編輯 收藏 所屬分類:
基本開發
cos.jar + uploadbean.jar + filemover.jar
index.jsp
<%@ page contentType="text/html;charset=GBK" language="java" %>
<html xmlns="<head>
<meta http-equiv="Content-Type" content="text/html; charset=GBK" />
<title>教育互動-升學考試</title>
<link href="css/default.css" rel="stylesheet" type="text/css">
</head>
<body >
<form name="frm" method="post" action="upload.jsp" ENCTYPE="multipart/form-data">
<table width="665" border="0" align="center" cellpadding="0" cellspacing="0">
? <tr>
??? <td width="27" class="green"> </td>
??? <td height="27" class="green">上傳試題:</td>
? </tr>
</table>
<table width="99%" border="0" align="center" cellpadding="0" cellspacing="0">
? <tr>
??? <td width="132" ><img src="../image/form_cor1.gif" width="132" height="9"></td>
??? <td ><img src="../image/form_top.gif" width="20" height="9"></td>
??? <td width="20"><img src="../image/form_cor3.gif" width="20" height="9"></td>
? </tr>
? <tr>
??? <td colspan="2" align="left" valign="top"><table width="95%" border="0" cellpadding="0" cellspacing="0">
????? <tr>
??????? <td height="27" align="right">考試名稱:</td>
??????? <td> </td>
??????? <td class="formline"><span class="green">
????????? <input name="examName" type="text" value="" maxlength="40">
????????? <span class="red">*</span></span></td>
????? </tr>
????? <tr>
??????? <td height="27" align="right">簡介:</td>
??????? <td></td>
??????? <td height="60" class="formline"><span class="green">
????????? <textarea name="introduce" cols="50" rows="3"></textarea>
????????? <span class="red">*</span></span></td>
????? </tr>
????? <tr>
??????? <td height="27" align="right">附件:</td>
??????? <td></td>
??????? <td ><span class="green">
????????? <input name="uploadfile" type="file">
??????? </span></td>
????? </tr>
?????
??? </table></td>
?? </tr>
? <tr >
??? <td width="132" background="../image/form_bmbg.gif"><img src="../image/form_cor2.gif" width="132" height="9"></td>
??? <td background="../image/form_bmbg.gif"><img src="../image/form_bmbg.gif" width="20" height="9"></td>
??? <td><img src="../image/form_cor4.gif" width="20" height="9"></td>
? </tr>
</table>
<table width="665" height="40" border="0" align="center" cellpadding="0" cellspacing="0">
? <tr>
??? <td width="140"> </td>
??? <td><span class="green">
????? <input type="submit"? name="submit" value="上傳文件" onclick="return uploadExcel()" >
????? <input type="reset" name="reset" value="取 消">
??? </span></td>
? </tr>
</table>
</form>
</body>
</html>
<script language="javascript">
function uploadExcel(){
?var upload=document.frm.uploadfile.value;
?var ext=upload.substring(upload.lastIndexOf(".")+1,upload.length);
?if(document.frm.examName.value==""){
??alert("考試名稱為空或為空字符");
??document.frm.examName.focus();
??document.frm.examName.select();
??return false;
?}
?if(document.frm.introduce.value.replace(/\s/ig,'').length==0){
??alert("考試簡介為空或為空字符");
??document.frm.introduce.focus();
??document.frm.introduce.select();
??return false;
?}
?if(document.frm.introduce.value.replace(/\s/ig,'').length > 200 || document.frm.introduce.value.replace(/\s/ig,'').length < 1){
??alert("考試簡介在[1-200]之間");
??document.frm.introduce.focus();
??document.frm.introduce.select();
??return false;
?}
?if(upload==""){
??alert("請上傳在線測試題目");
??document.frm.uploadfile.select();
??return false;
?}
?if(ext!="xls"){
??alert("你上傳的文件不是excel文件");
??document.frm.uploadfile.select();
??return false;
?}else{
??if(confirm("確定提交在線測試嗎?")){
???document.frm.submit();
??}
?}
}
</script>
upload.jsp實現如下:
<%@ page contentType="text/html;charset=GBK" %>
<%@ page import="java.io.*"%>
<%@ page import="java.util.*"%>
<%@ page import="javazoom.upload.*"%>
<%@ page import="uploadutilities.FileMover"%>
<%@ page import="java.text.SimpleDateFormat"%>
<%?
?request.setCharacterEncoding("GBK");//設置編碼格式,就不用一個個轉碼了。
??? FileMover fileMover = new FileMover();//你也可以使用自帶的實例中jsp:useBean的形式。
?? ?UploadBean upBean = new UploadBean();
??? MultipartFormDataRequest mrequest = null;
??? Hashtable files = null;
??? if(MultipartFormDataRequest.isMultipartFormData(request)){
????? try{
????? mrequest = new MultipartFormDataRequest(request,null,10*1024*1024,MultipartFormDataRequest.COSPARSER,"GBK");//注意這里也要設置編碼參數
????? files = mrequest.getFiles();
????? }catch(IOException e){
%>
<script language="javascript">
??? alert("請上傳小于10M的文件");
??? history.back(-1);
</script>
<%
????? }
? ?}
?String sServerFileName="";? //服務器文件名
??String sLocalFileName = ""; //本地文件名
?if(files!=null && !files.isEmpty()){
??UploadFile file=null;
?? ?String examName=mrequest.getParameter("examName");
???String introduce=mrequest.getParameter("introduce");
??
??OnlineTestServiceImpl epsi=new OnlineTestServiceImpl();
??file = (UploadFile) files.get("uploadfile");
??sLocalFileName=file.getFileName();
??int ii= sLocalFileName.indexOf("."); //取文件名的后綴
??String sExt = sLocalFileName.substring(ii,sLocalFileName.length());
????? //得到不重復的文件名
??java.util.Date dt = new java.util.Date(System.currentTimeMillis());
??SimpleDateFormat fmt = new SimpleDateFormat("yyyyMMddHHmmssSSS");
??sServerFileName= fmt.format(dt);
??sServerFileName =sServerFileName + sExt;
??ExcelReader readExcel = new ExcelReader();
??File dir =new File("D:\\test1");
??if (!dir.exists()){
????? dir.mkdirs();
??}
??upBean.setFolderstore("D:\\test1");//設置要上傳的目錄
??upBean.addUploadListener(fileMover);//增加filMover監聽
??fileMover.setNewfilename(sServerFileName);//設置服務器上的文件名
??upBean.store(mrequest, "uploadfile");//上傳
??}
?}
%>
Lyyb2001