超宇的博客

不忘初心,方得始终!

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();
		}
	}
}


阅读更多
版权声明:本文为博主原创文章,转载请标明出处。 https://blog.csdn.net/chaoyu168/article/details/49902909
文章标签: Java实现图片上传
个人分类: Java
上一篇Java给服务端发送文件
下一篇客户端登陆服务器用户名验证
想对作者说点什么? 我来说一句

java图片上传源代码

2013年12月12日 26KB 下载

没有更多推荐了,返回首页

关闭
关闭