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


目录
相关文章
|
1月前
使用ueditor实现多图片上传案例——实体类(Shopping.java)
使用ueditor实现多图片上传案例——实体类(Shopping.java)
18 0
|
8月前
|
前端开发 Java Spring
Java Spring MVC 图片上传操作详解
在现代的Web开发中,图片上传是一个非常常见的需求。而Java Spring MVC框架则是JavaWeb开发中常用的框架之一。本文将介绍如何在Java Spring MVC框架中实现图片上传操作。
90 0
|
Java
Java 实现汉字按照首字母分组排序
Java 实现汉字按照首字母分组排序
561 0
|
11月前
使用ueditor实现多图片上传案例——实体类(Shopping.java)
使用ueditor实现多图片上传案例——实体类(Shopping.java)
38 0
|
Java
uniapp多图片上传、预览,java后台接收
uniapp多图片上传、预览,java后台接收
640 0
|
分布式计算 Java Hadoop
Java实现单词计数MapReduce
本文分享实现单词计数MapReduce的方法
301 0
|
Java 数据安全/隐私保护
JAVA 实现上传图片添加水印(详细版)(上)
JAVA 实现上传图片添加水印(详细版)
933 0
JAVA 实现上传图片添加水印(详细版)(上)
|
存储 Java
Java实现图书管理系统
本篇文章是对目前Java专栏已有内容的一个总结练习,希望各位小主们在学习完面向对象的知识后,可以阅览本篇文章后,自己也动手实现一个这样的demo来加深总结应用已经学到知识并进行巩固。
374 0
Java实现图书管理系统
|
Java Windows Spring
java实现spring boot项目启动时,重启Windows进程
java实现spring boot项目启动时,重启Windows进程
475 0
|
数据可视化 Java
Java实现拼图小游戏(1)—— JFrame的认识及界面搭建
如果要在某一个界面里面添加功能的话,都在一个类中,会显得代码难以阅读,而且修改起来也会很困难,所以我们将游戏主界面、登录界面、以及注册界面都单独编成一个类,每一个类都继承JFrame父类,并且在类中创建方法来来实现页面
458 0
Java实现拼图小游戏(1)—— JFrame的认识及界面搭建