日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java http 下载文件_JAVA通过HttpURLConnection 上传和下载文件的方法

發布時間:2025/3/11 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java http 下载文件_JAVA通过HttpURLConnection 上传和下载文件的方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文介紹了JAVA通過HttpURLConnection 上傳和下載文件的方法,分享給大家,具體如下:

HttpURLConnection文件上傳

HttpURLConnection采用模擬瀏覽器上傳的數據格式,上傳給服務器

上傳代碼如下:

package com.util;

import java.io.BufferedInputStream;

import java.io.BufferedReader;

import java.io.DataOutputStream;

import java.io.File;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.InputStream;

import java.io.InputStreamReader;

import java.io.OutputStream;

import java.io.OutputStreamWriter;

import java.net.HttpURLConnection;

import java.net.MalformedURLException;

import java.net.URL;

import java.net.URLConnection;

import java.util.Iterator;

import java.util.Map;

/**

* Java原生的API可用于發送HTTP請求,即java.net.URL、java.net.URLConnection,這些API很好用、很常用,

* 但不夠簡便;

*

* 1.通過統一資源定位器(java.net.URL)獲取連接器(java.net.URLConnection) 2.設置請求的參數 3.發送請求

* 4.以輸入流的形式獲取返回內容 5.關閉輸入流

*

* @author H__D

*

*/

public class HttpConnectionUtil {

/**

* 多文件上傳的方法

*

* @param actionUrl:上傳的路徑

* @param uploadFilePaths:需要上傳的文件路徑,數組

* @return

*/

@SuppressWarnings("finally")

public static String uploadFile(String actionUrl, String[] uploadFilePaths) {

String end = "\r\n";

String twoHyphens = "--";

String boundary = "*****";

DataOutputStream ds = null;

InputStream inputStream = null;

InputStreamReader inputStreamReader = null;

BufferedReader reader = null;

StringBuffer resultBuffer = new StringBuffer();

String tempLine = null;

try {

// 統一資源

URL url = new URL(actionUrl);

// 連接類的父類,抽象類

URLConnection urlConnection = url.openConnection();

// http的連接類

HttpURLConnection httpURLConnection = (HttpURLConnection) urlConnection;

// 設置是否從httpUrlConnection讀入,默認情況下是true;

httpURLConnection.setDoInput(true);

// 設置是否向httpUrlConnection輸出

httpURLConnection.setDoOutput(true);

// Post 請求不能使用緩存

httpURLConnection.setUseCaches(false);

// 設定請求的方法,默認是GET

httpURLConnection.setRequestMethod("POST");

// 設置字符編碼連接參數

httpURLConnection.setRequestProperty("Connection", "Keep-Alive");

// 設置字符編碼

httpURLConnection.setRequestProperty("Charset", "UTF-8");

// 設置請求內容類型

httpURLConnection.setRequestProperty("Content-Type", "multipart/form-data;boundary=" + boundary);

// 設置DataOutputStream

ds = new DataOutputStream(httpURLConnection.getOutputStream());

for (int i = 0; i < uploadFilePaths.length; i++) {

String uploadFile = uploadFilePaths[i];

String filename = uploadFile.substring(uploadFile.lastIndexOf("//") + 1);

ds.writeBytes(twoHyphens + boundary + end);

ds.writeBytes("Content-Disposition: form-data; " + "name=\"file" + i + "\";filename=\"" + filename

+ "\"" + end);

ds.writeBytes(end);

FileInputStream fStream = new FileInputStream(uploadFile);

int bufferSize = 1024;

byte[] buffer = new byte[bufferSize];

int length = -1;

while ((length = fStream.read(buffer)) != -1) {

ds.write(buffer, 0, length);

}

ds.writeBytes(end);

/* close streams */

fStream.close();

}

ds.writeBytes(twoHyphens + boundary + twoHyphens + end);

/* close streams */

ds.flush();

if (httpURLConnection.getResponseCode() >= 300) {

throw new Exception(

"HTTP Request is not success, Response code is " + httpURLConnection.getResponseCode());

}

if (httpURLConnection.getResponseCode() == HttpURLConnection.HTTP_OK) {

inputStream = httpURLConnection.getInputStream();

inputStreamReader = new InputStreamReader(inputStream);

reader = new BufferedReader(inputStreamReader);

tempLine = null;

resultBuffer = new StringBuffer();

while ((tempLine = reader.readLine()) != null) {

resultBuffer.append(tempLine);

resultBuffer.append("\n");

}

}

} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace();

} finally {

if (ds != null) {

try {

ds.close();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

if (reader != null) {

try {

reader.close();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

if (inputStreamReader != null) {

try {

inputStreamReader.close();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

if (inputStream != null) {

try {

inputStream.close();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

return resultBuffer.toString();

}

}

public static void main(String[] args) {

// 上傳文件測試

String str = uploadFile("http://127.0.0.1:8080/image/image.do",new String[] { "/Users//H__D/Desktop//1.png","//Users/H__D/Desktop/2.png" });

System.out.println(str);

}

}

HttpURLConnection文件下載

下載代碼如下:

package com.util;

import java.io.BufferedInputStream;

import java.io.BufferedReader;

import java.io.DataOutputStream;

import java.io.File;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.InputStream;

import java.io.InputStreamReader;

import java.io.OutputStream;

import java.io.OutputStreamWriter;

import java.net.HttpURLConnection;

import java.net.MalformedURLException;

import java.net.URL;

import java.net.URLConnection;

import java.util.Iterator;

import java.util.Map;

/**

* Java原生的API可用于發送HTTP請求,即java.net.URL、java.net.URLConnection,這些API很好用、很常用,

* 但不夠簡便;

*

* 1.通過統一資源定位器(java.net.URL)獲取連接器(java.net.URLConnection) 2.設置請求的參數 3.發送請求

* 4.以輸入流的形式獲取返回內容 5.關閉輸入流

*

* @author H__D

*

*/

public class HttpConnectionUtil {

/**

*

* @param urlPath

* 下載路徑

* @param downloadDir

* 下載存放目錄

* @return 返回下載文件

*/

public static File downloadFile(String urlPath, String downloadDir) {

File file = null;

try {

// 統一資源

URL url = new URL(urlPath);

// 連接類的父類,抽象類

URLConnection urlConnection = url.openConnection();

// http的連接類

HttpURLConnection httpURLConnection = (HttpURLConnection) urlConnection;

// 設定請求的方法,默認是GET

httpURLConnection.setRequestMethod("POST");

// 設置字符編碼

httpURLConnection.setRequestProperty("Charset", "UTF-8");

// 打開到此 URL 引用的資源的通信鏈接(如果尚未建立這樣的連接)。

httpURLConnection.connect();

// 文件大小

int fileLength = httpURLConnection.getContentLength();

// 文件名

String filePathUrl = httpURLConnection.getURL().getFile();

String fileFullName = filePathUrl.substring(filePathUrl.lastIndexOf(File.separatorChar) + 1);

System.out.println("file length---->" + fileLength);

URLConnection con = url.openConnection();

BufferedInputStream bin = new BufferedInputStream(httpURLConnection.getInputStream());

String path = downloadDir + File.separatorChar + fileFullName;

file = new File(path);

if (!file.getParentFile().exists()) {

file.getParentFile().mkdirs();

}

OutputStream out = new FileOutputStream(file);

int size = 0;

int len = 0;

byte[] buf = new byte[1024];

while ((size = bin.read(buf)) != -1) {

len += size;

out.write(buf, 0, size);

// 打印下載百分比

// System.out.println("下載了-------> " + len * 100 / fileLength +

// "%\n");

}

bin.close();

out.close();

} catch (MalformedURLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} finally {

return file;

}

}

public static void main(String[] args) {

// 下載文件測試

downloadFile("http://localhost:8080/images/1467523487190.png", "/Users/H__D/Desktop");

}

}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

總結

以上是生活随笔為你收集整理的java http 下载文件_JAVA通过HttpURLConnection 上传和下载文件的方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 免费国产羞羞网站视频 | 国内精品嫩模av私拍在线观看 | 日批在线| 性巴克成人免费网站 | 99精品国产成人一区二区 | 麻豆视频免费看 | 国产草草视频 | 天天爽天天爽夜夜爽毛片 | 丁香激情五月少妇 | 欧美精品一区二区三区久久久 | 精品动漫一区二区三区在线观看 | 青青草成人在线观看 | 亚洲毛片一级 | 最新av在线网址 | 亚洲黄色免费 | 国产成人手机视频 | 成人综合精品 | 抖音视频在线观看 | 黄视频在线免费看 | 放荡闺蜜高h季红豆h | 韩国三级国产 | 蜜臀久久99精品久久久 | 性色av免费| 91干视频 | 尤物在线免费观看 | 久久久久亚洲av无码专区体验 | 黄色99视频 | 日韩精品一二 | 韩国三级hd中文字幕 | 亚洲 自拍 另类 欧美 丝袜 | 欧美影视一区二区三区 | 激情综合激情五月 | 久久视频这里只有精品 | 91国内精品 | 日日操夜夜操视频 | 国产精品日韩精品 | 国产稀缺真实呦乱在线 | 国产视频精品在线 | 在线视频观看一区 | 久草网在线观看 | 欧美亚色| 欧洲美女粗暴牲交免费观看 | 成人看片在线 | 无码人妻丰满熟妇区五十路 | 奇米四色网| 欧美日韩亚洲色图 | 黑人玩弄人妻一区二区三区 | 国产免费一区二区视频 | 黄色免费观看网站 | 九九色网 | www污网站 | 爱情岛论坛亚洲品质自拍 | 18性xxxxx性猛交 | 美女少妇毛片 | 亚洲人成无码www久久久 | 无码人妻丰满熟妇区毛片蜜桃精品 | 在线观看三区 | 国色天香网站 | 日韩av男人天堂 | 午夜不卡影院 | h片在线看 | 又黄又高潮的视频 | 亚洲国产97| 影音先锋在线播放 | 毛片天堂| 66亚洲一卡2卡新区成片发布 | 亚洲精品国产一区 | 三级视频国产 | 久久综合社区 | 美女免费毛片 | 黄色免费播放 | 欧美日韩成人一区二区在线观看 | 国产午夜精品一区二区三区视频 | 国产精品视频在线观看 | av中文字幕一区二区三区 | 超碰在线伊人 | 免费成人电影在线观看 | 少妇精品一区二区 | 色婷婷18| 国产中文在线观看 | 一级黄色av | 国产精品suv一区二区 | 三级黄色免费 | 亚洲精品一区二 | 亚洲精品综合在线观看 | 一区二区福利 | jizz成人 | 综合精品久久 | jizz自拍| 黄色小视频免费看 | 国产夜色精品一区二区av | 狠狠操天天干 | 欧美激情日韩 | 日韩久久精品 | 91亚洲视频在线观看 | 青青草原亚洲 | 欧美无遮挡 | 日剧网 | 女人18毛片毛片毛片毛片区二 |