• 大小: 27KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-13
  • 语言: Java
  • 标签:

资源简介

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 < nEndPos) {
oSav

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件        529  2015-03-16 15:00  test\.classpath

     文件        285  2015-03-16 15:00  test\.mymetadata

     文件       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.xml

     文件         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\meta-INF\MANIFEST.MF

     文件       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.xml

     目录          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个文件信息

评论

共有 条评论

相关资源