Java实现图片上传

原创 2015年11月18日 10:03:55
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();
		}
	}
}


版权声明:本文为博主原创文章,转载请标明出处。

相关文章推荐

ssm框架下fileupload图片上传实践

参考这篇博客操作http://blog.csdn.net/jronzhang/article/details/61210700 1、加入两个jar包 2、在配置文件applicationConte...

java多图片上传功能的实现

开发环境:jdk1.7,MyEclipse10 框架用的是spring。用到了maven工具(maven的包百度下就可以)第一步、先在Spring中对图片进行限制 <bean id=...

Java实现图片上传到服务器,并把上传的图片读取出来

在很多的网站都可以实现上传头像,可以选择自己喜欢的图片做头像,从本地上传,下次登录时可以直接显示出已经上传的头像,那么这个是如何实现的呢?   下面说一下我的实现过程(只是个人实现思路,实际网站怎么实...

java上传图片文件

总的说图片上传有两种方式,一种是把图片文件写到数据库中,另一种是存到服务器文件目录中。写到数据库中的图片文件需要转换成二进制流的格式,占用数据库空间比较,适合少量图片的存储,比如说,系统中某些小图标,...

JAVA 关于图片上传的代码

private File file; private String fileFileName; private String picture; //都有getter 和 setter In...

JAVA上传文件图片到指定服务器目录

***web.xml*** <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun...

java一次多选的多图片异步上传

注:一般上传图片我们都会用input file 来上传,但是这个点击上传的时候只能每次选中一张图片,但是怎么做到点击的时候能同事选中多张呢?网上看了很多插件,有些是配置很繁琐,有的插件则是一张一张添加...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)