資源簡介
JAVAWEB批量文件下載器,實現文件批量下載,隊列方式,一個下載完成,再下載另一個。

代碼片段和文件信息
package?servlet;
import?java.io.File;
import?java.io.IOException;
import?java.io.InputStream;
import?java.io.RandomAccessFile;
import?java.net.HttpURLConnection;
import?java.net.URL;
import?java.util.HashMap;
import?java.util.Map;
import?javax.servlet.ServletConfig;
import?javax.servlet.ServletException;
import?javax.servlet.http.HttpServlet;
import?javax.servlet.http.HttpServletRequest;
import?javax.servlet.http.HttpServletResponse;
public?class?DeliverServlet?extends?HttpServlet?{
private?static?final?long?serialVersionUID?=?-247051569889918673L;
private?static?final?String?base_URL?=?“http://www.3310.com/plus/apksoftajax.php“;
public?static?Map?downloaders?=?new?HashMap();
@Override
public?void?init(ServletConfig?config)?throws?ServletException?{
super.init();
}
@Override
protected?void?doPost(HttpServletRequest?request?HttpServletResponse?response)?throws?ServletException?IOException?{
doGet(request?response);
}
@Override
protected?void?doGet(HttpServletRequest?request?HttpServletResponse?response)?throws?ServletException?IOException?{
response.setCharacterEncoding(“UTF-8“);
response.setContentType(“text/xml“);
final?String?md5?=?request.getParameter(“md5“);
final?String?filePath?=?request.getParameter(“filePath“);
final?String?fileName?=?filePath.substring(filePath.lastIndexOf(“/“)?+?1?filePath.length());
final?String?localPath?=?request.getParameter(“localPath“);
if?(!StringUtil.isNullOrBlank(md5)?&&?!StringUtil.isNullOrBlank(filePath)?&&?!StringUtil.isNullOrBlank(localPath))?{
ThreadUtils.execute(new?Runnable()?{
@Override
public?void?run()?{
//?TODO?Auto-generated?method?stub
if?(downloaders.get(md5)?==?null)?{
downloaders.put(md5?fileName);
downloadFile(md5?filePath?fileName?localPath);
}
}
});
}?else?{
HttpRequest.sendGet(base_URL?“md5=“?+?md5?+?“&isSuc=0&file=“?+?fileName);
}
}
private?void?deleteFile(File?filename)?{
if?(filename.exists())?{?//?判斷文件是否存在
if?(filename.isFile())?{?//?判斷是否是文件
filename.delete();
}
}
}
public?void?downloadFile(String?md5?String?filePath?String?fileName?String?localPath)?{
int?nStartPos?=?0;
int?nRead?=?0;
try?{
URL?url?=?new?URL(filePath);
//?打開連接
HttpURLConnection?httpConnection?=?(HttpURLConnection)?url.openConnection();
//?獲得文件長度
long?nEndPos?=?getFileSize(filePath);
RandomAccessFile?oSavedFile?=?new?RandomAccessFile(localPath?+?“\\“?+?fileName?“rw“);
httpConnection.setRequestProperty(“User-Agent“?“Internet?Explorer“);
String?sProperty?=?“bytes=“?+?nStartPos?+?“-“;
//?告訴服務器這個文件從nStartPos字節開始傳
httpConnection.setRequestProperty(“RANGE“?sProperty);
InputStream?input?=?httpConnection.getInputStream();
byte[]?b?=?new?byte[1024];
//?讀取網絡文件寫入指定的文件中
while?((nRead?=?input.read(b?0?1024))?>?0?&&?nStartPos? oSav
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????529??2015-03-16?15:00??test\.classpath
?????文件????????285??2015-03-16?15:00??test\.myme
?????文件???????1747??2015-03-16?15:40??test\.project
?????文件????????500??2015-03-16?15:00??test\.settings\.jsdtscope
?????文件?????????78??2015-03-16?15:00??test\.settings\com.genuitec.eclipse.ws.prefs
?????文件?????????57??2015-03-16?15:02??test\.settings\org.eclipse.core.resources.prefs
?????文件????????364??2015-03-16?15:00??test\.settings\org.eclipse.jdt.core.prefs
?????文件????????450??2015-03-16?15:00??test\.settings\org.eclipse.wst.common.component
?????文件????????252??2015-03-16?15:00??test\.settings\org.eclipse.wst.common.project.facet.core.xm
?????文件?????????49??2015-03-16?15:00??test\.settings\org.eclipse.wst.jsdt.ui.superType.container
?????文件??????????6??2015-03-16?15:00??test\.settings\org.eclipse.wst.jsdt.ui.superType.name
?????文件???????4764??2015-03-16?16:50??test\src\servlet\DeliverServlet.java
?????文件???????3642??2015-03-16?16:14??test\src\servlet\HttpRequest.java
?????文件???????1757??2015-03-16?15:58??test\src\servlet\MD5Helper.java
?????文件??????10842??2015-03-16?15:15??test\src\servlet\StringUtil.java
?????文件???????2137??2015-03-16?15:58??test\src\servlet\TestDownFile.java
?????文件???????1143??2015-03-16?15:13??test\src\servlet\ThreadUtils.java
?????文件????????834??2015-03-16?15:00??test\WebRoot\index.jsp
?????文件?????????36??2015-03-16?15:00??test\WebRoot\me
?????文件???????1285??2015-03-16?16:50??test\WebRoot\WEB-INF\classes\servlet\DeliverServlet$1.class
?????文件???????5795??2015-03-16?16:50??test\WebRoot\WEB-INF\classes\servlet\DeliverServlet.class
?????文件???????4108??2015-03-16?16:14??test\WebRoot\WEB-INF\classes\servlet\HttpRequest.class
?????文件???????2631??2015-03-16?15:58??test\WebRoot\WEB-INF\classes\servlet\MD5Helper.class
?????文件???????9993??2015-03-16?15:15??test\WebRoot\WEB-INF\classes\servlet\StringUtil.class
?????文件???????3001??2015-03-16?15:58??test\WebRoot\WEB-INF\classes\servlet\TestDownFile.class
?????文件???????1618??2015-03-16?15:13??test\WebRoot\WEB-INF\classes\servlet\ThreadUtils.class
?????文件????????643??2015-03-16?15:03??test\WebRoot\WEB-INF\web.xm
?????目錄??????????0??2015-03-16?16:51??test\WebRoot\WEB-INF\classes\servlet
?????目錄??????????0??2015-03-16?16:51??test\WebRoot\WEB-INF\classes
?????目錄??????????0??2015-03-16?15:00??test\WebRoot\WEB-INF\lib
............此處省略10個文件信息
評論
共有 條評論