Java實(shí)現(xiàn)的簡單圖片上傳功能示例
本文實(shí)例講述了Java實(shí)現(xiàn)的簡單圖片上傳功能。分享給大家供大家參考,具體如下:
import java.io.*; import java.net.*; /* *發(fā)送端 */ class picsend { public static void main(String[] args) throws Exception { if(args.length!=1) { System.out.println("請選擇一張.jpg圖片"); return; } File file = new File(args[0]); if (!(file.exists() && file.isFile())) { System.out.println("圖片有問題(不是文件或不存在)"); return; } if(!file.getName().endsWith(".jpg")) { System.out.println("圖片格式不對(duì),請重新選擇圖片"); return; } if(file.length()>1024*1024*10) { System.out.println("圖片過大,無法上傳"); return; } Socket s = new Socket("192.168.33.1",10006);//建立服務(wù) FileInputStream fis = new FileInputStream("d:\\美女.jpg");//讀取圖片 OutputStream out = s.getOutputStream();//讀到的寫入 byte [] b = new byte[1024]; int len = 0; while((len = fis.read(b))!= -1) { out.write(b,0,len); } s.shutdownOutput();//標(biāo)記結(jié)束 InputStream in = s.getInputStream();//讀服務(wù)端返回?cái)?shù)據(jù) byte [] bin = new byte[1024]; int num = in.read(bin); System.out.println(new String(bin,0,num)); fis.close(); s.close(); } } class picThread implements Runnable { private Socket s; picThread(Socket s) { this.s = s; } public void run() { int count = 1; String ip = s.getInetAddress().getHostAddress();//得到ip try { System.out.println(ip+".............connect"); InputStream in = s.getInputStream();//讀到流中數(shù)據(jù) File file = new File(ip+"("+(count)+")"+".jpg"); while(file.exists())//判斷文件是否存在 file = new File(ip+"("+(count++)+")"+".jpg"); FileOutputStream fos = new FileOutputStream(file);//寫入 byte [] b = new byte[1024]; int len = 0; while((len = in.read(b))!=-1) { fos.write(b,0,len); } OutputStream out = s.getOutputStream();//寫入服務(wù)端傳過來數(shù)據(jù) out.write("上傳成功!".getBytes()); fos.close(); s.close(); } catch (Exception e) { throw new RuntimeException("上傳失敗"); } } } /* *服務(wù)端 */ class picrece { public static void main(String[] args) throws Exception { ServerSocket ss = new ServerSocket(10006); while(true) { Socket s = ss.accept();//接收 new Thread(new picThread(s)).start(); } } }
運(yùn)行效果圖如下:
更多java相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Java圖片操作技巧匯總》、《java日期與時(shí)間操作技巧匯總》、《Java操作DOM節(jié)點(diǎn)技巧總結(jié)》、《Java文件與目錄操作技巧匯總》及《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》。
希望本文所述對(duì)大家java程序設(shè)計(jì)有所幫助。
- Java實(shí)現(xiàn)圖片上傳至服務(wù)器功能(FTP協(xié)議)
- Java實(shí)現(xiàn)的圖片上傳工具類完整實(shí)例
- Java Struts圖片上傳至指定文件夾并顯示圖片功能
- java使用CKEditor實(shí)現(xiàn)圖片上傳功能
- Java通過jersey實(shí)現(xiàn)客戶端圖片上傳示例
- Java實(shí)現(xiàn)圖片上傳到服務(wù)器并把上傳的圖片讀取出來
- Java+mysql本地圖片上傳數(shù)據(jù)庫及下載示例
- java web圖片上傳和文件上傳實(shí)例
- java web圖片上傳和文件上傳實(shí)例詳解
- java實(shí)現(xiàn)圖片上傳至本地實(shí)例詳解
相關(guān)文章
SpringCloud Ribbon負(fù)載均衡實(shí)例解析
這篇文章主要介紹了SpringCloud Ribbon負(fù)載均衡實(shí)例解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-11-11java冷知識(shí):javac AbstractProcessor詳解
這篇文章主要介紹了java冷知識(shí):javac AbstractProcessor詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-11-11關(guān)于idea一直卡在build不動(dòng)的解決方案
這篇文章主要介紹了idea一直卡在build不動(dòng)的解決方案,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-10-10java~springboot~ibatis數(shù)組in查詢的實(shí)現(xiàn)方法
這篇文章主要介紹了java~springboot~ibatis數(shù)組in查詢的實(shí)現(xiàn)方法,需要的朋友可以參考下2018-09-09Spring解讀@Component和@Configuration的區(qū)別以及源碼分析
通過實(shí)例分析@Component和@Configuration注解的區(qū)別,核心在于@Configuration會(huì)通過CGLIB代理確保Bean的單例,而@Component不會(huì),在Spring容器中,使用@Configuration注解的類會(huì)被CGLIB增強(qiáng),保證了即使在同一個(gè)類中多次調(diào)用@Bean方法2024-10-10Spring Boot高級(jí)教程之使用Redis實(shí)現(xiàn)session共享
這篇文章主要為大家詳細(xì)介紹了Spring Boot高級(jí)教程之使用Redis實(shí)現(xiàn)session共享,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-10-10SpringBoot中的RestTemplate使用方法詳解
這篇文章主要介紹了SpringBoot中的RestTemplate使用方法詳解,為了方便使用,這里我封裝成一個(gè)工具類來靜態(tài)調(diào)用RestTemplate,基于SpringBoot2.4.2版本,需要的朋友可以參考下2024-01-01從零開始Java實(shí)現(xiàn)Parser?Combinator
這篇文章主要為大家介紹了從零開始Java實(shí)現(xiàn)Parser?Combinator過程及原理詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-05-05