本文目錄一覽:
怎樣通過java實現伺服器上文件下載?
在jsp/servlet中斷點/多線程下載文件
%@ page import=”java.io.File” %
%@ page import=”java.io.IOException” %
%@ page import=”java.io.OutputStream” %
%@ page import=”java.io.RandomAccessFile” %
%!
public void downloadFile(HttpServletRequest request, HttpServletResponse response, File file) throws IOException {
RandomAccessFile raf = new RandomAccessFile(file, “r”);
java.io.FileInputStream fis = new java.io.FileInputStream(raf.getFD());
response.setHeader(“Server”, “”);
response.setHeader(“Accept-Ranges”, “bytes”);
long pos = 0;
long len;
len = raf.length();
if (request.getHeader(“Range”) != null) {
response.setStatus(HttpServletResponse.SC_PARTIAL_CONTENT);
pos = Long.parseLong(request.getHeader(“Range”)
.replaceAll(“bytes=”, “”)
.replaceAll(“-“, “”)
);
}
response.setHeader(“Content-Length”, Long.toString(len – pos));
if (pos != 0) {
response.setHeader(“Content-Range”, new StringBuffer()
.append(“bytes “)
.append(pos)
.append(“-“)
.append(Long.toString(len – 1))
.append(“/”)
.append(len)
.toString()
);
}
response.setContentType(“application/octet-stream”);
response.setHeader(“Content-Disposition”, new StringBuffer()
.append(“attachment;filename=\””)
.append(file.getName())
.append(“\””).toString());
raf.seek(pos);
byte[] b = new byte[2048];
int i;
OutputStream outs = response.getOutputStream();
while ((i = raf.read(b)) != -1) {
outs.write(b, 0, i);
}
raf.close();
fis.close();
}
%
%
String filePath = request.getParameter(“file”);
filePath = application.getRealPath(filePath);
File file = new File(filePath);
downloadFile(request, response, file);
%
java 下載伺服器端文件,路徑怎麼寫
路徑就是如:「/user/etc」。
解釋:伺服器的路徑展現形式不是以盤符開始的,而是以「/」開始,之後的路徑和windows系統無任何區別,如上面舉例的路徑,如果想從etc下拿文件,直接「cd /user/etc」之後找到想要的文件,進行下載即可。
java從伺服器下載圖片怎麼講圖片保存到本地的sdcard上
ublic HttpServletResponse download(String path, HttpServletResponse response) {
try {
// path是指欲下載的文件的路徑。
File file = new File(path);
// 取得文件名。
String filename = file.getName();
// 取得文件的後綴名。
String ext = filename.substring(filename.lastIndexOf(“.”) + 1).toUpperCase();
// 以流的形式下載文件。
InputStream fis = new BufferedInputStream(new FileInputStream(path));
byte[] buffer = new byte[fis.available()];
fis.read(buffer);
fis.close();
// 清空response
response.reset();
// 設置response的Header
response.addHeader(“Content-Disposition”, “attachment;filename=” + new String(filename.getBytes()));
response.addHeader(“Content-Length”, “” + file.length());
OutputStream toClient = new BufferedOutputStream(response.getOutputStream());
response.setContentType(“application/octet-stream”);
toClient.write(buffer);
toClient.flush();
toClient.close();
} catch (IOException ex) {
ex.printStackTrace();
}
return response;
}
java下載伺服器上的文件到客戶端
java編程方法下載伺服器上的文件到本地客服端,代碼如下:
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.net.URLConnection;
public class DownLoad {
public static void downloadFile(URL theURL, String filePath) throws IOException {
File dirFile = new File(filePath);
if(!dirFile.exists()){
//文件路徑不存在時,自動創建目錄
dirFile.mkdir();
}
//從伺服器上獲取圖片並保存
URLConnection connection = theURL.openConnection();
InputStream in = connection.getInputStream();
FileOutputStream os = new FileOutputStream(filePath+”\\123.png”);
byte[] buffer = new byte[4 * 1024];
int read;
while ((read = in.read(buffer)) 0) {
os.write(buffer, 0, read);
}
os.close();
in.close();
}
public static void main(String[] args) {
//下面添加伺服器的IP地址和埠,以及要下載的文件路徑
String urlPath = “http://伺服器IP地址:埠/image/123.png”;
//下面代碼是下載到本地的位置
String filePath = “d:\\excel”;
URL url = new URL(urlPath);
try {
downloadFile(url,filePath);
} catch (IOException e) {
e.printStackTrace();
}
}
}
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/254272.html