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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java上传网络图片_java网络编程之图片上传

發(fā)布時(shí)間:2025/4/16 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java上传网络图片_java网络编程之图片上传 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

輸入輸出流核心代碼

所有的文件傳輸都是靠流,其中文件復(fù)制最具代表性.輸入流和輸出流,從輸入流中讀取數(shù)據(jù)寫入到輸出流中。

InputStream in =輸入源;

OutputStream os=輸出目的;byte[] bytes = new byte[1024];int len = 0;while((len = in.read(bytes))!=-1){ //讀取到文件末尾的話可以讀到-1

os.write(bytes,0,len);

}

os.close();

in.close();

TCP圖片上傳客戶端

1.Socket套接字連接服務(wù)器,指定ip和端口

Socket socket = Socket(String host, int port);

2.通過Socket獲取字節(jié)輸出流,向服務(wù)器寫圖片

OutputStream os = socket.getOutputStream();

3.創(chuàng)建輸入流對(duì)象,讀取圖片數(shù)據(jù)源

FileInputStream fis = new FileInputStream(filePath);

4.讀取圖片,使用字節(jié)輸出流,將圖片寫到服務(wù)器,采用字節(jié)數(shù)組進(jìn)行緩沖

int len = 0;

byte[] bytes = new byte[1024];

while ((len = fis.read(bytes)) != -1){

os.write(bytes,0,len);

}

socket.shutdownOutput();//文件讀完時(shí)給服務(wù)器寫終止序列

5.通過Socket套接字獲取字節(jié)輸入流,讀取服務(wù)器發(fā)回來的上傳成功

InputStream inputStream = socket.getInputStream();

len = inputStream.read(bytes);

System.out.println("服務(wù)器返回:"+new String(bytes,0,len));

6.關(guān)閉資源

socket.close();

/*** 實(shí)現(xiàn)TCP圖片上傳客戶端

* 實(shí)現(xiàn)步驟:

* 1.Socket套接字連接服務(wù)器,指定ip和端口

* Socket socket = Socket(String host, int port);

* 2.通過Socket獲取字節(jié)輸出流,寫圖片

* OutputStream os = socket.getOutputStream();

* 3.使用自己的流對(duì)象,讀取圖片數(shù)據(jù)源

* FileInputStream fis = new FileInputStream(filePath);

* 4.讀取圖片,使用字節(jié)輸出流,將圖片寫到服務(wù)器,采用字節(jié)數(shù)組進(jìn)行緩沖

* int len = 0;

* byte[] bytes = new byte[1024];

* while ((len = fis.read(bytes)) != -1){

* os.write(bytes,0,len);

* }

* 5.通過Socket套接字獲取字節(jié)輸入流,讀取服務(wù)器發(fā)回來的上傳成功

* InputStream inputStream = socket.getInputStream();

* len = inputStream.read(bytes);

* System.out.println("服務(wù)器返回:"+new String(bytes,0,len));

* 6.關(guān)閉資源

* socket.close();

*

* Created by Autumn on 2018/2/5.*/

public classTCPClient {public static void main(String[] args) throwsIOException {

String ip= "127.0.0.1";int port = 8000;

File fileFolder= new File("D:\\Users\\Autumn\\Pictures");

uploadPic(ip,port,fileFolder+File.separator+"tiger.jpg");

uploadPic(ip,port,fileFolder+File.separator+"water.jpg");

uploadPic(ip,port,fileFolder+File.separator+"sunset.jpg");

}/*** 上傳圖片

*@paramip 服務(wù)器ip地址

*@paramport 服務(wù)器端口號(hào)

*@paramfilePath 文件路徑

*@throwsIOException*/

public static void uploadPic(String ip,int port,String filePath) throwsIOException{//創(chuàng)建客戶端Socket

Socket socket = newSocket(ip,port);//根據(jù)Socket獲取字節(jié)輸出流,用此流將圖片寫到服務(wù)器

OutputStream os =socket.getOutputStream();//創(chuàng)建字節(jié)輸入流,讀取本機(jī)上的數(shù)據(jù)源圖片

FileInputStream fis = newFileInputStream(filePath);//開始讀寫字節(jié)數(shù)組,從輸入流中讀取到輸出流

int len = 0;byte[] bytes = new byte[1024];while ((len = fis.read(bytes)) != -1){

os.write(bytes,0,len);

}//文件讀完時(shí)給服務(wù)器寫終止序列

socket.shutdownOutput();//獲取字節(jié)輸入流,讀取服務(wù)器的上傳成功

InputStream inputStream =socket.getInputStream();

len=inputStream.read(bytes);

System.out.println("服務(wù)器返回:"+new String(bytes,0,len));

socket.close();

}

}

TCP圖片上傳服務(wù)器端

1.ServerSocket套接字對(duì)象,監(jiān)聽8000

ServerSocket serverSocket = ServerSocket(int port);

2.方法accept()獲取客戶端的連接對(duì)象

Socket socket = serverSocket.accept();

3.客戶端連接對(duì)象獲取字節(jié)輸入流,讀取客戶端發(fā)送圖片

InputStream in = socket.getInputStream();

4.創(chuàng)建File對(duì)象,綁定上傳文件夾。判斷文件夾存在,不存在則創(chuàng)建文件夾

File upload = new File("d:\\upload");

if (!upload.exists()){

upload.mkdirs();

}

5.創(chuàng)建字節(jié)輸出流,數(shù)據(jù)目的File對(duì)象所在文件夾

String fileName = "pic"+System.currentTimeMillis()+ new Random().nextInt(9999)+".jpg";

FileOutputStream fos = new FileOutputStream(upload+File.separator+fileName);

6.字節(jié)流讀取圖片,字節(jié)流將圖片寫入到目的文件中

byte[] bytes = new byte[1024];

int len = 0;

while((len = in.read(bytes))!=-1){ ? ? //讀的是客戶端發(fā)過來圖片的字節(jié)數(shù)組,只有讀文件能讀到-1,所以這里永遠(yuǎn)讀不到-1,read()會(huì)一直阻塞。(需要客戶端發(fā)送結(jié)束標(biāo)志)

fos.write(bytes,0,len);

}

7.將上傳成功回寫給客戶端

socket.getOutputStream().write(("上傳到服務(wù)器"+socket.getLocalAddress().toString()+"成功").getBytes());

8.關(guān)閉資源

fos.close();

socket.close();

/*** 多線程接收?qǐng)D片

* Created by Autumn on 2018/2/5.*/

public classTCPThreadServer {public static void main(String[] args) throwsIOException {//服務(wù)端不用指定ip地址,只需指定端口號(hào)

ServerSocket serverSocket = new ServerSocket(8000);while(true){//獲得一個(gè)客戶端Socket對(duì)象,開啟一個(gè)線程

Socket socket = serverSocket.accept(); //線程阻塞

new Thread(newUpload(socket)).start();

}

}

}/*** TCP圖片上傳服務(wù)器

* 1.ServerSocket套接字對(duì)象,監(jiān)聽8000

* ServerSocket serverSocket = ServerSocket(int port);

* 2.方法accept()獲取客戶端的連接對(duì)象

* Socket socket = serverSocket.accept();

* 3.客戶端連接對(duì)象獲取字節(jié)輸入流,讀取客戶端發(fā)送圖片

* InputStream in = socket.getInputStream();

* 4.創(chuàng)建File對(duì)象,綁定上傳文件夾。判斷文件夾存在,不存在則創(chuàng)建文件夾

* File upload = new File("d:\\upload");

* if (!upload.exists()){

* upload.mkdirs();

* }

* 5.創(chuàng)建字節(jié)輸出流,數(shù)據(jù)目的File對(duì)象所在文件夾

* String fileName = "pic"+System.currentTimeMillis()+ new Random().nextInt(9999)+".jpg";

* FileOutputStream fos = new FileOutputStream(upload+File.separator+fileName);

* 6.字節(jié)流讀取圖片,字節(jié)流將圖片寫入到目的文件中

* byte[] bytes = new byte[1024];

* int len = 0;

* while((len = in.read(bytes))!=-1){ //讀的是客戶端發(fā)過來圖片的字節(jié)數(shù)組,只有讀文件能讀到1,所以永遠(yuǎn)讀不到-1

* fos.write(bytes,0,len);

* }

* 7.將上傳成功回寫給客戶端

* socket.getOutputStream().write(("上傳到服務(wù)器"+socket.getLocalAddress().toString()+"成功").getBytes());

* 8.關(guān)閉資源

* fos.close();

* socket.close();

* Created by Autumn on 2018/2/5.*/

public class Upload implementsRunnable {privateSocket socket;publicUpload(Socket socket){this.socket =socket;

}

@Overridepublic voidrun() {try{//獲取輸入流

InputStream in =socket.getInputStream();//創(chuàng)建文件夾

File upload = new File("d:\\upload");if (!upload.exists()){

upload.mkdirs();

}

String fileName= "pic"+System.currentTimeMillis()+ new Random().nextInt(9999)+".jpg";//創(chuàng)建字節(jié)輸出流,將圖片寫入到目的文件夾 upload:d://upload

FileOutputStream fos = new FileOutputStream(upload+File.separator+fileName);//讀寫字節(jié)數(shù)組

byte[] bytes = new byte[1024];int len = 0;while((len = in.read(bytes))!=-1){ //讀的是客戶端發(fā)過來圖片的字節(jié)數(shù)組,只有讀文件能讀到1,所以永遠(yuǎn)讀不到-1

fos.write(bytes,0,len);

}

System.out.println("成功接收來自"+socket.getInetAddress()+socket.getPort()+"的圖片!");//通過客戶端連接對(duì)象獲取字節(jié)輸出流//上傳成功寫會(huì)客戶端

socket.getOutputStream().write(("上傳到服務(wù)器"+socket.getLocalAddress().toString()+"成功").getBytes());

fos.close();

socket.close();

}catch(IOException e) {

e.printStackTrace();

}

}

}

總結(jié)

以上是生活随笔為你收集整理的java上传网络图片_java网络编程之图片上传的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 高h放荡受浪受bl | 激情五月色播五月 | av在线电影网 | 久久天天躁狠狠躁夜夜躁2014 | 男操女视频网站 | 亚洲区 欧美区 | 日韩视频精品在线 | 亚洲三级中文字幕 | 亚洲人成在线观看 | 国产熟妇另类久久久久 | 秋霞av影院 | 噜噜噜在线视频 | 久久久久人妻一区 | 一区二区三区在线不卡 | 日韩高清一级片 | 黄色一级片在线看 | 日韩激情视频网站 | 色一情 | 36d大奶| 日本一区二区三区在线观看 | 国产免费中文字幕 | 97热视频 | 日韩视频在线视频 | 亚洲欧洲日本一区二区三区 | 亚洲视频a | 亚洲欧美日韩国产一区 | 久久92 | 波多野42部无码喷潮在线 | 久久99精品国产.久久久久 | 欧美成人亚洲 | 99er在线观看 | 91精品国产99久久久久久红楼 | 91禁在线看 | 亚洲精品h | 特级西西人体 | 日韩高清影视在线观看 | 雪花飘电影在线观看免费高清 | 国产成人无码AA精品区 | 亚洲国产精品久久久久久6q | 久久久久国产 | 久久人人爽 | 床戏高潮做进去大尺度视频 | 天天做天天爱天天做 | 91精品福利视频 | 18在线观看免费入口 | 欧美又粗又长 | 亚洲天堂av一区 | 伊人久久网站 | 毛片网站在线观看 | 爆乳熟妇一区二区三区 | 蜜桃臀av| 亚洲成人黄色小说 | 黑料视频在线 | 久久嫩草精品久久久久 | av资源网在线 | 亚洲欧洲日韩 | 经典三级第一页 | 国产精品免费在线 | 牲欲强的熟妇农村老妇女视频 | 欧美激情片在线观看 | 波多野结衣在线一区二区 | 国产99久久久国产精品免费看 | 杨幂国产精品一区二区 | 国产91精选 | 在线观看三级视频 | 又爽又黄又无遮挡 | 韩日午夜在线资源一区二区 | 久青草视频 | 午夜爽爽视频 | 欧美色图俺去了 | 亚洲少妇一区 | 国产精品亚洲AV色欲三区不卡 | 闷骚老干部cao个爽 av九九九 | 欧美一级片免费观看 | 久久成年 | 在线成人毛片 | 老司机深夜福利影院 | 性欧美成人播放77777 | 操欧洲美女| 99思思| 欧美日本另类 | 欧美日韩性生活视频 | 午夜婷婷| 亚欧综合在线 | 免费一级黄色 | 99riAv国产精品无码鲁大师 | 性久久久久久久久久久 | 欧美一级无毛 | 成人小视频在线免费观看 | 国产青青在线 | 超碰人人人人人人 | 天天射天天干天天色 | 亚洲一卡二卡在线观看 | 天堂中文字幕免费一区 | 极品少妇av | 亚洲国产成人无码av在线 | 久久大陆 | 久久国产精品波多野结衣av | 一区二区国产欧美 |