java實(shí)現(xiàn)分段讀取文件并通過(guò)HTTP上傳的方法
本文實(shí)例講述了java實(shí)現(xiàn)分段讀取文件并通過(guò)HTTP上傳的方法。分享給大家供大家參考。具體如下:
1、首先將文件分段,用RandomAccessFile
2、分段后將分出的內(nèi)容上傳到http
URL url = new URL(actionUrl); HttpURLConnection con = (HttpURLConnection) url.openConnection(); /** 允許Input、Output,不使用Cache */ con.setDoInput(true); con.setDoOutput(true); con.setUseCaches(false); /** 設(shè)定傳送的method=POST */ con.setRequestMethod("POST"); /** setRequestProperty */ con.setRequestProperty("Connection", "Keep-Alive"); con.setRequestProperty("Charset", "UTF-8"); con.setRequestProperty("Content-Type", "multipart/form-data;boundary=" + boundary); /** 設(shè)定DataOutputStream */ DataOutputStream ds = new DataOutputStream(con.getOutputStream()); ds.writeBytes(twoHyphens + boundary + end); ds.writeBytes("Content-Disposition: form-data; " + "name=\"file1\";filename=\"" + newName + "\"" + end); ds.writeBytes(end); /** 取得文件的FileInputStream */ FileInputStream fStream = new FileInputStream(uploadFile); /** 設(shè)定每次寫(xiě)入1024bytes */ int bufferSize = 1024; byte[] buffer = new byte[bufferSize]; int length = -1; /** 從文件讀取數(shù)據(jù)到緩沖區(qū) */ while ((length = fStream.read(buffer)) != -1) { /** 將數(shù)據(jù)寫(xiě)入DataOutputStream中 */ ds.write(buffer, 0, length); } ds.writeBytes(end); ds.writeBytes(twoHyphens + boundary + twoHyphens + end); /** close streams */ fStream.close(); ds.flush();
希望本文所述對(duì)大家的java程序設(shè)計(jì)有所幫助。
相關(guān)文章
SpringBoot Entity中枚舉類型詳細(xì)使用介紹
本文介紹SpringBoot如何在Entity(DAO)中使用枚舉類型。(本文使用MyBatis-Plus)。在實(shí)際開(kāi)發(fā)中,經(jīng)常會(huì)遇到表示類型或者狀態(tài)的情況,比如:有三種支付方式:微信、支付寶、銀聯(lián)。本文介紹如何這種場(chǎng)景的方案對(duì)比,并用實(shí)例來(lái)介紹如何用枚舉這種最優(yōu)雅的來(lái)表示2022-10-10IDEA最新版2020.1的maven工程本地依賴倉(cāng)庫(kù)無(wú)法使用問(wèn)題(已解決)
這篇文章主要介紹了IDEA最新版2020.1的maven工程本地依賴倉(cāng)庫(kù)無(wú)法使用問(wèn)題,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06java selenium Selenium IDE介紹及用法
本文主要介紹java selenium Selenium IDE,這里整理了相關(guān)資料和介紹如何安裝 Selenium IDE和使用方法,有需要的小伙伴可以參考下2016-08-08基于Nacos實(shí)現(xiàn)Spring Cloud Gateway實(shí)現(xiàn)動(dòng)態(tài)路由的方法
這篇文章主要介紹了基于Nacos實(shí)現(xiàn)Spring Cloud Gateway實(shí)現(xiàn)動(dòng)態(tài)路由的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06java中JsonObject與JsonArray轉(zhuǎn)換方法實(shí)例
在項(xiàng)目日常開(kāi)發(fā)中常常會(huì)遇到JSONArray和JSONObject的轉(zhuǎn)換,很多公司剛?cè)肼毜男∶刃聲?huì)卡在這里,下面這篇文章主要給大家介紹了關(guān)于java中JsonObject與JsonArray轉(zhuǎn)換方法的相關(guān)資料,需要的朋友可以參考下2023-04-04