zoukankan      html  css  js  c++  java
  • java实现图片上传

    /*
     *  java multiple upload demo
     *  @author:luowen
     *  @time:2013-11-06
     * */
    
    import java.io.*;
    import java.net.*;
    
    
    class UploadClient
    {
        public static void main(String[] args)throws Exception
        {
    
            if(args.length != 1)
            {
                System.out.println("输入错误,请正确输入");
                return;
            }
            
            File file = new File(args[0]);
    
            if(!(file.exists() && file.isFile()))
            {
                System.out.println("你输入的不是存在,或者不是文件");
                return ;
            }
    
            if(!file.getName().endsWith(".jpg"))
            {
                System.out.println("你输入的文件格式不正确,请输入.jpg格式的文件");
                return ;
            }
    
            if(file.length() >= 1024*1024*5)
            {
                System.out.println("你输入的文件过大,请输入小于5M的文件");
                return ;
            }
    
            Socket s = new Socket("127.0.0.1",10000);
    
            FileInputStream fos = new FileInputStream(file);
            OutputStream os = s.getOutputStream();
    
            byte[] by = new byte[1024];
            int len;
    
            while((len = fos.read(by)) != -1)
            {
                os.write(by,0,len);
            }
    
            s.shutdownOutput();
    
            InputStream is = s.getInputStream();
    
            byte[] by1 = new byte[1024];
            int num;
            while((num = is.read(by)) != -1)
            System.out.println(new String(by,0,num));
    
            fos.close();
            s.close();
    
        }
    }
    
    class UploadServer
    {
        public static void main(String[] args)
        {
            try
            {
                ServerSocket ss = new ServerSocket(10000);
    
                while(true)
                {
                    Socket s = ss.accept();
                    new Thread(new UploadThread(s)).start();
                }
            
            }
            catch(Exception e)
            {
                throw new RuntimeException("监听端口失败!");
            }
    
        }
    
    }
    
    class UploadThread implements Runnable
    {
        private Socket s;
        UploadThread(Socket s)
        {
            this.s = s;
        }
        public void run()
        {
            String ip = s.getInetAddress().getHostAddress();
            try
            {
                System.out.println(ip + "================connected!");
                
                int count = 0;
    
                File file = new File(ip+"("+count+").jpg");
    
                while(file.exists())
                    file = new File(ip+"("+(count++)+").jpg");
    
                FileOutputStream fos = new FileOutputStream(file);
    
                InputStream is = s.getInputStream();
    
                byte[] by = new byte[1024];
                int len ;
    
                while((len = is.read(by)) != -1)
                {
                    fos.write(by,0,len);
                }
    
                PrintWriter pw = new PrintWriter(s.getOutputStream(),true);
                pw.println(ip + "上传成功!");
    
                s.close();
                fos.close();
            }
            catch(Exception e)
            {
                throw new RuntimeException(ip + "上传失败!");
            }
    
    
        }
    }
    

      

  • 相关阅读:
    ArcMAP操作 获取点所在栅格的高程值
    AE代码 积累
    AE 判断点是否在面内
    ArcMAP获取要素的外包多边形
    DEM消除平三角形教程
    博文目录
    Redis哨兵集群部署
    引用-各类数据库整体架构图汇总
    百度数仓Palo-Doris并发压测性能
    引用-Phoenix介绍
  • 原文地址:https://www.cnblogs.com/luowen/p/3411314.html
Copyright © 2011-2022 走看看