博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java实现图片上传
阅读量:6954 次
发布时间:2019-06-27

本文共 2010 字,大约阅读时间需要 6 分钟。

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://www.cnblogs.com/chaoyu/p/6436944.html

你可能感兴趣的文章
.NET开发技巧——从Winform穿越到WPF
查看>>
2135亿背后的双11项目协作怎么玩?
查看>>
DRDS SQL 审计与分析——全面洞察 SQL 之利器
查看>>
微信小程序:模板消息推送实现
查看>>
CodePush自定义更新弹框及下载进度条
查看>>
搞定PHP面试 - 深入了解引用
查看>>
自己总结的php开发中用到的工具
查看>>
小程序视频或音频自定义可拖拽进度条
查看>>
PHP导出超大的CSV格式的Excel表方案
查看>>
Mac 环境下如何生成Git shh key
查看>>
webpack4 多页面配置 功能齐全 开箱即用
查看>>
jenkins 使用磁盘检查插件 disk check plugin
查看>>
支付宝H5支付配置项用处说明
查看>>
使用 Ruby 拓展 Vim
查看>>
java并发编程学习10--同步器--倒计时门栓
查看>>
centos7下安装LNMP(nginx+PHP7.1.9+mysql5.7)
查看>>
实现compose的五种思路
查看>>
【228天】黑马程序员27天视频学习笔记【Day27-上】
查看>>
NodeAPI学习之Buffer
查看>>
深入java单例模式
查看>>