• 技术文章 >Java >java教程

    Java实现图片上传功能的简单示例

    黄舟黄舟2017-09-06 14:12:22原创1609

    这篇文章主要介绍了Java实现的简单图片上传功能,结合实例形式分析了java图片传输相关的检验、传输、接收等相关操作技巧,需要的朋友可以参考下

    本文实例讲述了Java实现的简单图片上传功能。分享给大家供大家参考,具体如下:


    import java.io.*;
    import java.net.*;
    /*
    *发送端
    */
    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);//建立服务
        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();//标记结束
        InputStream in = s.getInputStream();//读服务端返回数据
        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();//读到流中数据
          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();//写入服务端传过来数据
          out.write("上传成功!".getBytes());
          fos.close();
          s.close();
        }
        catch (Exception e)
        {
          throw new RuntimeException("上传失败");
        }
      }
    }
    /*
    *服务端
    */
    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实现图片上传功能的简单示例的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:Java 功能 上传
    上一篇:单列布局水平居中布局方法 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • Java中Map集合体系的基本使用和常用API• Java数据结构常见排序算法(总结分享)• 一起来分析java设计模式之单例• 深入分析Java的序列化与反序列化• Java知识点总结之多线程基础
    1/1

    PHP中文网