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 + "上传失败!");

        }





    }

}

  

你可能感兴趣的:(java实现)