欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java實現(xiàn)的簡單圖片上傳功能示例

 更新時間:2017年09月06日 12:14:27   作者:chaoyu168  
這篇文章主要介紹了Java實現(xiàn)的簡單圖片上傳功能,結(jié)合實例形式分析了java圖片傳輸相關(guān)的檢驗、傳輸、接收等相關(guān)操作技巧,需要的朋友可以參考下

本文實例講述了Java實現(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("圖片格式不對,請重新選擇圖片");
      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ù)端返回數(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();
    }
  }
}

運行效果圖如下:

更多java相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Java圖片操作技巧匯總》、《java日期與時間操作技巧匯總》、《Java操作DOM節(jié)點技巧總結(jié)》、《Java文件與目錄操作技巧匯總》及《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》。

希望本文所述對大家java程序設(shè)計有所幫助。

相關(guān)文章

  • SpringCloud Ribbon負(fù)載均衡實例解析

    SpringCloud Ribbon負(fù)載均衡實例解析

    這篇文章主要介紹了SpringCloud Ribbon負(fù)載均衡實例解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-11-11
  • java冷知識:javac AbstractProcessor詳解

    java冷知識:javac AbstractProcessor詳解

    這篇文章主要介紹了java冷知識:javac AbstractProcessor詳解,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • Java中的LinkedHashMap源碼分析

    Java中的LinkedHashMap源碼分析

    這篇文章主要介紹了Java中的LinkedHashMap源碼分析,LinkedHashMap是HashMap的子類,所以基本的操作與hashmap類似,不過呢,在插入、刪除、替換key-value對的時候,需要的朋友可以參考下
    2023-12-12
  • 關(guān)于idea一直卡在build不動的解決方案

    關(guān)于idea一直卡在build不動的解決方案

    這篇文章主要介紹了idea一直卡在build不動的解決方案,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-10-10
  • java~springboot~ibatis數(shù)組in查詢的實現(xiàn)方法

    java~springboot~ibatis數(shù)組in查詢的實現(xiàn)方法

    這篇文章主要介紹了java~springboot~ibatis數(shù)組in查詢的實現(xiàn)方法,需要的朋友可以參考下
    2018-09-09
  • Spring解讀@Component和@Configuration的區(qū)別以及源碼分析

    Spring解讀@Component和@Configuration的區(qū)別以及源碼分析

    通過實例分析@Component和@Configuration注解的區(qū)別,核心在于@Configuration會通過CGLIB代理確保Bean的單例,而@Component不會,在Spring容器中,使用@Configuration注解的類會被CGLIB增強,保證了即使在同一個類中多次調(diào)用@Bean方法
    2024-10-10
  • Spring Boot高級教程之使用Redis實現(xiàn)session共享

    Spring Boot高級教程之使用Redis實現(xiàn)session共享

    這篇文章主要為大家詳細(xì)介紹了Spring Boot高級教程之使用Redis實現(xiàn)session共享,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • java冒泡排序算法代碼

    java冒泡排序算法代碼

    這篇文章介紹了java冒泡排序算法代碼,有需要的朋友可以參考一下
    2013-10-10
  • SpringBoot中的RestTemplate使用方法詳解

    SpringBoot中的RestTemplate使用方法詳解

    這篇文章主要介紹了SpringBoot中的RestTemplate使用方法詳解,為了方便使用,這里我封裝成一個工具類來靜態(tài)調(diào)用RestTemplate,基于SpringBoot2.4.2版本,需要的朋友可以參考下
    2024-01-01
  • 從零開始Java實現(xiàn)Parser?Combinator

    從零開始Java實現(xiàn)Parser?Combinator

    這篇文章主要為大家介紹了從零開始Java實現(xiàn)Parser?Combinator過程及原理詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-05-05

最新評論