資源簡介
圖片上傳功能幾乎是每一個項目都必備的,而沒遇到一次都要重新寫一篇,就陷入了重復造輪子的圈子中,所以今天把這個上傳圖片的小demo上傳到網上,供大家以后遇到的時候直接使用,提供方便,避免做重復的事情。
代碼片段和文件信息
package?com.upload.demo;
import?java.io.BufferedReader;
import?java.io.File;
import?java.io.FileOutputStream;
import?java.io.IOException;
import?java.io.InputStream;
import?java.io.InputStreamReader;
import?java.util.ArrayList;
import?java.util.Date;
import?java.util.HashMap;
import?java.util.List;
import?java.util.Map;
import?java.util.Properties;
import?java.util.UUID;
import?javax.servlet.ServletException;
import?javax.servlet.http.HttpServlet;
import?javax.servlet.http.HttpServletRequest;
import?javax.servlet.http.HttpServletResponse;
import?org.apache.commons.fileupload.FileItem;
import?org.apache.commons.fileupload.disk.DiskFileItemFactory;
import?org.apache.commons.fileupload.servlet.ServletFileUpload;
import?com.lidroid.xutils.http.RequestParams;
public?class?UploadServlet?extends?HttpServlet{
@Override
protected?void?doGet(HttpServletRequest?req?HttpServletResponse?resp)
throws?ServletException?IOException?{
doPost(req?resp);
};
@Override
protected?void?doPost(HttpServletRequest?request
HttpServletResponse?response)?throws?ServletException?IOException?{
//服務器端接收請求被后臺攔截到這里
exeUploadedInfos(request?response);
};
/**
?*??定義接口
?*/
public?interface?UploadStatusListener?{
public?void?status(boolean?status?Map?params
List?files?HttpServletRequest?request);
}
UploadStatusListener?mUploadStatusListener?=?null;
//?注冊監聽器,如果這里沒有使用Vector而是使用ArrayList那么要注意同步問題
public?void?addStatusListener(UploadStatusListener?listener)?{
mUploadStatusListener?=?listener;
}
/**
?*?@function:回調方法,執行圖片上傳,根據成功或失敗的狀態完成其他的操作
?*?@param?request
?*?@param?response
?*/
private?void?exeUploadedInfos(HttpServletRequest?request
HttpServletResponse?response)?{
UploadServlet?up?=?new?UploadServlet();
up.addStatusListener(new?UploadStatusListener()?{
public?void?status(boolean?status?Map?params
List?files?HttpServletRequest?request)?{
if?(status)?{//成功
//Map中取值
String?memberId?=?params.get(“memberId“);
//List中取值
String?fileUrl?=?files.get(0);
System.out.println(“===================================成功“);
}?else?{
//失敗
System.out.println(“========================================失敗“);
}
}
});
up.upload(request?response);
}
/**
?*?@function:具體上傳圖片的功能在這里完成,
?*?然后調用接口回調方法mUploadStatusListener.status(flag?params?filenames??request);跳轉到回調函數中
?*?@param?request
?*?@param?response
?*/
public?void?upload(HttpServletRequest?request?HttpServletResponse?response)?{
boolean?flag?=?false;
Map?params?=?new?HashMap();
List?filenames?=?new?ArrayList();
try?{
System.out.println(“開始文件上傳****************“);
request.setCharacterEncoding(“utf-8“);?//?設置編碼
//?設置上傳文件最大為?3M
????????????final?long?MAX_SIZE?=?3?*?1024?*?1024;
//?1.創建一個解析器工廠
DiskFile
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????1168??2015-12-01?09:49??UploadDemo\.classpath
?????文件???????1043??2015-11-23?12:24??UploadDemo\.project
?????文件????????503??2015-11-23?12:24??UploadDemo\.settings\.jsdtscope
?????文件????????364??2015-11-23?12:24??UploadDemo\.settings\org.eclipse.jdt.core.prefs
?????文件????????484??2015-11-23?12:24??UploadDemo\.settings\org.eclipse.wst.common.component
?????文件????????345??2015-11-23?12:24??UploadDemo\.settings\org.eclipse.wst.common.project.facet.core.xm
?????文件?????????49??2015-11-23?12:24??UploadDemo\.settings\org.eclipse.wst.jsdt.ui.superType.container
?????文件??????????6??2015-11-23?12:24??UploadDemo\.settings\org.eclipse.wst.jsdt.ui.superType.name
?????文件???????1840??2015-12-01?10:10??UploadDemo\build\classes\com\upload\demo\UploadServlet$1.class
?????文件????????482??2015-12-01?10:10??UploadDemo\build\classes\com\upload\demo\UploadServlet$UploadStatusListener.class
?????文件???????5994??2015-12-01?10:10??UploadDemo\build\classes\com\upload\demo\UploadServlet.class
?????文件???????5535??2015-12-01?10:10??UploadDemo\src\com\upload\demo\UploadServlet.java
?????文件?????????39??2015-11-23?12:24??UploadDemo\WebContent\me
?????文件????????886??2015-11-24?09:26??UploadDemo\WebContent\upload.jsp
?????文件??????57779??2015-05-31?17:45??UploadDemo\WebContent\WEB-INF\lib\commons-fileupload-1.2.1.jar
?????文件??????65621??2015-11-27?14:15??UploadDemo\WebContent\WEB-INF\lib\commons-io-1.2.jar
?????文件?????321639??2015-06-03?15:03??UploadDemo\WebContent\WEB-INF\lib\httpcore-4.4.jar
?????文件?????283561??2015-10-08?15:22??UploadDemo\WebContent\WEB-INF\lib\xUtils-2.6.14.jar
?????文件????????922??2015-11-23?12:40??UploadDemo\WebContent\WEB-INF\web.xm
?????目錄??????????0??2015-12-01?09:49??UploadDemo\build\classes\com\upload\demo
?????目錄??????????0??2015-12-01?09:49??UploadDemo\build\classes\com\upload
?????目錄??????????0??2015-11-23?12:40??UploadDemo\src\com\upload\demo
?????目錄??????????0??2015-12-01?09:49??UploadDemo\build\classes\com
?????目錄??????????0??2015-11-23?12:40??UploadDemo\src\com\upload
?????目錄??????????0??2015-12-01?09:48??UploadDemo\WebContent\WEB-INF\lib
?????目錄??????????0??2015-12-01?09:49??UploadDemo\build\classes
?????目錄??????????0??2015-11-23?12:40??UploadDemo\src\com
?????目錄??????????0??2015-11-23?12:24??UploadDemo\WebContent\me
?????目錄??????????0??2015-11-24?09:22??UploadDemo\WebContent\WEB-INF
?????目錄??????????0??2015-11-23?12:24??UploadDemo\.settings
............此處省略7個文件信息
- 上一篇:時間片輪轉調度算法
- 下一篇:office2010卸載工具
評論
共有 條評論