日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

利用apache-commons-fileupload写jsp上传文件

發布時間:2025/3/21 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 利用apache-commons-fileupload写jsp上传文件 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

利用apache-commons-fileupload寫jsp上傳文件

  需要下載fileupload和beanutils兩個包,代碼如下。

<%@?page?language="java"?contentType="text/html;charset=gb2312"%>

<%@?page?import="java.util.*"%>

<%@?page?import="java.io.*"%>

<%@?page?import="org.apache.commons.fileupload.*"%>

<%!
String?Mkdir(String?path)?{

????String?msg=null;
????java.io.File?dir;

????//?新建文件對象
????dir?=new?java.io.File(path);
????if?(dir?==?null)?{
????????msg?=?"錯誤原因:<BR>對不起,不能創建空目錄!";
????????return?msg;
????}
????if?(dir.isFile())?{
????????msg?=?"錯誤原因:<BR>已有同名文件<B>"?+?dir.getAbsolutePath()?+?"</B>存在。";
????????return?msg;
????}
????if?(!dir.exists())?{
????????boolean?result?=?dir.mkdirs();
????????if?(result?==?false)?{
????????????msg?=?"錯誤原因:<BR>目錄<b>"?+?dir.getAbsolutePath()?+?"</B>創建失敗,原因不明!";
????????????return?msg;
????????}
????????//?如果成功創建目錄,則無輸出。
????????//?msg?="成功創建目錄:?<B>"?+?dir.getAbsolutePath()?+?"</B>";
????????return?msg;
????}else?{
????//????msg?=?"錯誤原因:<BR>目錄<b>"?+?dir.getAbsolutePath()?+?"</b>已存在。";
????}
????return?msg;
}
String?getCurDate(){
????GregorianCalendar?gcDate?=?new?GregorianCalendar();?
????int?year??=?gcDate.get(GregorianCalendar.YEAR);
????int?month?=?gcDate.get(GregorianCalendar.MONTH);
????int?day???=?gcDate.get(GregorianCalendar.DAY_OF_MONTH);
????return?""+year+month+day;
}
%>?
<%
?String?msg?="";
?String?img=null;

?DiskFileUpload?fu?=?new?DiskFileUpload();
?//?設置允許用戶上傳文件大小,單位:字節
?fu.setSizeMax(10000000);
?//?maximum?size?that?will?be?stored?in?memory?
?//?設置最多只允許在內存中存儲的數據,單位:字節
?fu.setSizeThreshold(4096);
?//?設置一旦文件大小超過getSizeThreshold()的值時數據存放在硬盤的目錄
?fu.setRepositoryPath("/tmp");
?//開始讀取上傳信息

?List?fileItems?=?fu.parseRequest(request);

?//?依次處理每個上傳的文件
?Iterator?iter?=?fileItems.iterator();
?String?updir="/dbweb/upics/";
?String?updir2="/upics/";
?String?curdate=getCurDate();
?String?filepath?=?getServletContext().getRealPath(updir2)+"/"+curdate;//<---好象在tomcat下getrealpath有點問題
?String?opmsg?=?Mkdir(filepath);
?if(?opmsg?==?null)?{

?while?(iter.hasNext())?{
??FileItem?item?=?(FileItem)?iter.next();
??//忽略其他不是文件域的所有表單信息
??if?(!item.isFormField())?{
???String?name?=?item.getName();
???long?size?=?item.getSize();
???if((name==null||name.equals(""))?&&?size==0)
???continue;
????//?注意item.getName()
????//?會返回上載文件在客戶端的完整路徑名稱,這似乎是一個BUG。
????//?為解決這個問題,這里使用了fullFile.getName()。
????name=name.replace('\\','/');
????File?fullFile?=?new?File(name);?

????File?savedFile?=?new?File(filepath,fullFile.getName());
????item.write(savedFile);
????msg="<img?alt='"+fullFile.getName()+"'?src='"+updir+curdate+"/"+fullFile.getName()+"'?/>";
????img="<img?alt='"+fullFile.getName()+"'?src='"+updir+curdate+"/"+fullFile.getName()+"'?/>";
??}
?}
}//opmsg=null
%>


參考文獻:
1、用fileupload處理文件上傳
作者:◇ 劉冬 發文時間:2003.07.09 15:52:43 ,http://tech.ccidnet.com/pub/disp/Article?columnID=322&articleID=53966&pageNO=1
講得非常清楚
2、Jakarta Commons:巧用類和組件1 (2) 作者:Vikram Goyal 仙人掌工作室譯 ,http://www.uml.org.cn/j2ee/j2eeh2.htm

3、Jsp如何實現網頁的重定向 ,2002-05-16· ·包路躍··Yesky,http://www.yesky.com/SoftChannel/72342371945283584/20020424/1608521.shtml

4、判斷文件或文件夾是否存在,作者:羅會濤,http://www.fawcette.com/china/XmlFile.aspx?ID=205

5、java.util中的Date類,By Wing, 出處:處處,http://www.linuxaid.com.cn/articles/1/1/119413536.shtml

6、計算Java日期--學習怎樣創建和使用日期,作者:Robert Nielsen ,http://www.javaresearch.org/article/showarticle.jsp?column=1&thread=497

總結

以上是生活随笔為你收集整理的利用apache-commons-fileupload写jsp上传文件的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。