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

主站蜘蛛池模板: 中文字幕日本一区 | 日本天堂在线播放 | 免费看黄网站在线观看 | 色就是色亚洲色图 | 在线观看成人免费视频 | 高清精品xnxxcom | 国产九九九九九 | 国产原创av在线 | 波多野结衣三级视频 | 日韩精品久久久久久久的张开腿让 | 亚洲经典视频在线观看 | 热久久久久久久 | 亚洲欧美日韩精品色xxx | 欧美日韩综合在线观看 | 伊人365 | 久久亚洲av永久无码精品 | 强乱中文字幕av一区乱码 | 捆绑无遮挡打光屁股 | 日韩国产中文字幕 | 一本色道久久综合亚洲精品酒店 | 国产人成免费视频 | 久操视频免费在线观看 | 天天操天天透 | 毛茸茸亚洲孕妇孕交片 | 波多野结衣国产在线 | 成熟妇人a片免费看网站 | 操操操操网 | 成人影视免费 | 婷婷在线视频观看 | 日韩有色 | 黄色片大全 | 午夜激情成人 | 精品视频免费 | 亚洲瘦老头同性xxxxx | 亚洲自拍偷拍区 | 熟女少妇精品一区二区 | 女同hd系列中文字幕 | 国产性猛交╳xxx乱大交一区 | 人人爽人人插 | 激情六月婷 | 国产在线毛片 | 国产男女猛烈无遮挡 | 色天堂在线视频 | 看片在线观看 | 91美女视频网站 | 国产福利电影在线 | 人人爱人人插 | 国产精品ⅴa有声小说 | 亚洲黄色免费在线观看 | 天天爽夜夜爽人人爽 | 成人在线免费观看网站 | 日韩在线电影一区二区 | 国产精品播放 | 在线观看日批视频 | 在线欧美一区 | 日本色中色 | 国产一级精品视频 | 啪啪网页 | 99精品国自产在线 | 成人激情视频网站 | 交专区videossex另类 | 污污视频网站在线免费观看 | 卡通动漫精品一区二区三区 | 精品人妻无码一区二区三区 | 偷偷在线观看免费高清av | 久久99精品久久久久久水蜜桃 | 91久久久久国产一区二区 | 国产一级久久 | 久久久久久久黄色 | 亚洲美女免费视频 | 日韩视频一区二区三区在线播放免费观看 | 成人国产视频在线观看 | 精品福利视频导航 | 亚洲国产中文字幕在线观看 | 96国产视频 | 日韩高清片 | 一区二区中文在线 | 欧美日韩精品一区二区三区四区 | 夜夜夜网 | 亚洲一区h | 亚洲AV无码成人精品区在线观 | 国产精品视频你懂的 | 国产日韩在线观看视频 | 亚洲国产va | 天天艹天天射 | 黄网站免费大全入口 | 久久久久久久久久久久久久久久久 | 可以直接看的毛片 | 男女一级片| 天堂成人| 久久r精品| 看黄色网址 | 你懂的网址在线 | 少妇高潮av | 99在线免费视频 | 国产白丝在线观看 | 国产成人黄色 | 国产免费一区二区三区四区五区 | 国产对白羞辱绿帽vk |