資源簡介
基于java的uploadify上傳demo 例子,含注解

代碼片段和文件信息
import?javax.servlet.*;
import?javax.servlet.http.*;
import?java.io.*;
import?java.util.*;
import?org.apache.commons.fileupload.FileItem;??
import?org.apache.commons.fileupload.FileUploadException;??
import?org.apache.commons.fileupload.disk.DiskFileItemFactory;??
import?org.apache.commons.fileupload.servlet.ServletFileUpload;??
/**
文件上傳
步驟:
(1)?
*/
public?class?ProcessUpload?extends?HttpServlet
{
public?void?doPost(HttpServletRequest?request?HttpServletResponse?response)?throws?ServletException?IOException
{
/**/
System.out.println(“I?am?a?serlvet?to?process?upload!!!“);
request.setCharacterEncoding(?“UTF-8“?); //?從request中取時?以UTF-8編碼解析
//?工廠?
DiskFileItemFactory?diskFileItemFactory?=?new?DiskFileItemFactory();
//?獲取上傳文件存放的?目錄??無則創建
String?path?=?request.getRealPath(?“/upload“?);
System.out.println(“path?:?“?+?path);
new?java.io.File(?path?).mkdir();
????????/**?
?????????*?原理?它是先存到?暫時存儲室,然后在真正寫到?對應目錄的硬盤上,??
?????????*?按理來說?當上傳一個文件時,其實是上傳了兩份,第一個是以?.tem?格式的??
?????????*?然后再將其真正寫到?對應目錄的硬盤上?
?????????*/??
diskFileItemFactory.setRepository(?new?File(?path?)?);
????????//設置?緩存的大小,當上傳文件的容量超過該緩存時,直接放到?暫時存儲室??
????????diskFileItemFactory.setSizeThreshold(?1024*1024?);
????????
????????ServletFileUpload?upload?=?new?ServletFileUpload(diskFileItemFactory);?
????????try
????????{
????????????//?可上傳多個文件
????????????@SuppressWarnings(“unchecked“)
List?list?=?(List)?upload.parseRequest(?request?);
????????????for?(FileItem?item?:?list?)
????????????{
????????????????//?獲取?提交表單的?屬性名
????????????????String?name?=?item.getFieldName();
????????????????//?字符串類?屬性
????????????????if?(?item.isFormField()?)
????????????????{
????????????????????String?value?=?item.getString();
????????????????????System.out.println(name?+?“=“?+?value);
????????????????}?
????????????????//?二進制類
????????????????else?
????????????????{
????????????????????//?獲取上傳文件的名字???????????????????
????????????????????String?value?=?item.getName();?//?1獲取路徑????????????????????
????????????????????int?start?=?value.lastIndexOf(?“\\“?);//?2索引到最后一個反斜杠
????????????????????String?filename?=?value.substring(?start+1?);//3?截取(+1是去掉反斜杠)?
????????????????????System.out.println(?name?+?“=“?+?value?);
????????????????????File?file?=?null;
????????????????????do?{??
????????????????????????//?生成文件名
????????????????????????start?=?filename.lastIndexOf(?“.“?);????//?索引到最后一個點
????????????????????????filename?=?filename.substring(?0?start?)????//?不含擴展名的文件
????????????????????????????????????+?UUID.randomUUID().toString()??//?隨機數
????????????????????????????????????+?filename.substring(?start?);??//?擴展名
????????????????????????file?=?new?File(path?filename);??
????????????????????}?while?(file.exists());??
????????????????????System.out.println(?“filename=“?+?filename?);
????????????????????//?寫到磁盤上去
????????????????????item.write(?file?);
??????????????????
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2014-03-28?10:13??uploads\
?????文件?????????529??2014-03-28?10:34??uploads\.classpath
?????目錄???????????0??2014-03-28?10:34??uploads\.myeclipse\
?????文件?????????294??2014-03-28?10:34??uploads\.myme
?????文件????????1750??2014-03-28?10:34??uploads\.project
?????目錄???????????0??2014-03-28?10:13??uploads\.settings\
?????文件?????????500??2014-03-28?10:34??uploads\.settings\.jsdtscope
?????文件?????????395??2014-03-28?10:34??uploads\.settings\org.eclipse.jdt.core.prefs
?????文件?????????459??2014-03-28?10:34??uploads\.settings\org.eclipse.wst.common.component
?????文件?????????252??2014-03-28?10:34??uploads\.settings\org.eclipse.wst.common.project.facet.core.xm
?????文件??????????49??2014-03-28?10:34??uploads\.settings\org.eclipse.wst.jsdt.ui.superType.container
?????文件???????????6??2014-03-28?10:34??uploads\.settings\org.eclipse.wst.jsdt.ui.superType.name
?????目錄???????????0??2014-03-28?10:13??uploads\WebRoot\
?????目錄???????????0??2014-03-28?10:13??uploads\WebRoot\me
?????文件??????????36??2014-03-28?10:34??uploads\WebRoot\me
?????目錄???????????0??2014-03-28?10:13??uploads\WebRoot\WEB-INF\
?????目錄???????????0??2014-03-28?10:13??uploads\WebRoot\WEB-INF\classes\
?????文件????????3795??2014-03-28?10:34??uploads\WebRoot\WEB-INF\classes\ProcessUpload.class
?????目錄???????????0??2014-03-28?10:13??uploads\WebRoot\WEB-INF\lib\
?????文件???????59590??2014-03-28?10:34??uploads\WebRoot\WEB-INF\lib\commons-fileupload-1.2.2.jar
?????文件??????185140??2014-03-28?10:34??uploads\WebRoot\WEB-INF\lib\commons-io-2.4.jar
?????文件?????????712??2014-03-28?10:34??uploads\WebRoot\WEB-INF\web.xm
?????目錄???????????0??2014-03-28?10:13??uploads\WebRoot\css\
?????文件????????2543??2014-03-28?10:34??uploads\WebRoot\css\uploadify.css
?????目錄???????????0??2014-03-28?10:13??uploads\WebRoot\img\
?????文件????????2960??2014-03-28?10:34??uploads\WebRoot\img\uploadify-cancel.png
?????文件????????4641??2014-03-28?10:34??uploads\WebRoot\index.html
?????目錄???????????0??2014-03-28?10:13??uploads\WebRoot\js\
?????文件??????268381??2014-03-28?10:34??uploads\WebRoot\js\jquery-1.9.1.js
?????文件???????61153??2014-03-28?10:34??uploads\WebRoot\js\jquery.uploadify.min.js
?????文件???????12767??2014-03-28?10:34??uploads\WebRoot\js\uploadify.swf
............此處省略3個文件信息
- 上一篇:javamail多線程群發,同時開5個線程。
- 下一篇:jsp實現分頁.zip
評論
共有 條評論