日韩性视频-久久久蜜桃-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ò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 男生和女生操操 | 熟妇人妻中文字幕 | 蜜臀久久99精品久久久 | 成人午夜激情网 | 欧美一级久久久 | 国产丝袜视频 | 最新欧美日韩 | 波多野结衣在线播放 | 日韩国产欧美精品 | 欧美中文字幕视频 | www.污网站 | 精品国产欧美一区二区三区成人 | 激情小说一区 | 99精品黄色 | 色www亚洲国产阿娇yao | 国模精品视频一区二区 | 久久夜靖品2区 | av资源免费| 邻居少妇张开腿让我爽了在线观看 | 亚洲精品1 | 欧美中文字幕在线观看 | 台湾佬av | 秋霞精品一区二区三区 | 日本十八禁视频无遮挡 | 91免费观看视频在线 | 欧美日韩精品一区二区三区 | 久久撸视频| 日韩经典av | 福利二区三区 | 亚洲黄色在线免费观看 | 日本美女久久久 | 国产视频手机在线播放 | 黄a毛片| 国产剧情久久久 | jizz国产视频 | 国产亚洲欧美在线 | 亚洲精品欧洲 | 精品少妇一区二区三区密爱 | 成人精品一区二区三区电影黑人 | 美女被到爽高潮视频 | 亚洲午夜福利在线观看 | 亚洲精品专区 | 超碰在线免费 | 国产欧美日韩综合精品一区二区 | 欧美日韩在线观看视频 | 篠田优在线观看 | 国产又黄又粗的视频 | 国产精品成人免费视频 | 日爽夜爽 | 一区二区三区免费视频观看 | 黄色片视频网站 | 农村老熟妇乱子伦视频 | 国产视频自拍一区 | 久久丫精品忘忧草西安产品 | 亚洲ⅴ国产v天堂a无码二区 | 欧美精品动漫 | 又粗又猛又爽又黄的视频 | 香蕉久久国产av一区二区 | 黄色一二三区 | 亚洲人视频在线 | 欧美日韩国语 | 国产精品久久久久久一区二区三区 | 欧美福利小视频 | 久热国产精品视频 | 天天夜夜人人 | 女十八毛片 | 97精品一区 | 337p粉嫩日本欧洲亚洲大胆 | 秋霞影院午夜老牛影院 | 麻豆av导航 | 国产视频久久 | 好邻居韩国剧在线观看 | 欧美成人三级伦在线观看 | 五月天黄色小说 | 黑丝啪啪 | 亚洲精品国产精品乱码视色 | 国产精品传媒视频 | 男女污视频| 欧美男女交配 | 丰满少妇高潮在线观看 | 激情综合五月 | 亚洲综合色婷婷 | 在线不卡的av | 91人人澡人人爽人人精品 | 国精产品一区一区三区有限公司杨 | babes性欧美69 | 国产91在线播放 | 日韩成人在线免费视频 | 无码国内精品人妻少妇蜜桃视频 | 免费看黄色一级片 | 亚洲 自拍 另类 欧美 丝袜 | 久久精品视频免费播放 | 成人精品一区二区三区视频 | 精品国偷自产在线 | 黄色小视频入口 | 亚洲成a人片77777kkkk | 一级日韩一级欧美 | 国产精品乱码久久久久久久久 | 97久久精品视频 |