Java图片上传实现代码

本文实例为大家分享了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();
    }
  }
} 

效果:

以上就是本文的全部内容,希望对大家学习java程序设计有所帮助。

(0)

相关推荐

  • Java通过jersey实现客户端图片上传示例

    在上一篇笔记 <SpringMVC实现图片上传>记录了将图片上传到本地的实现,在很多项目中都会有一台专门的文件服务器来保存文件的,这边记录下客户端通过jersey上传图片到文件服务端的实现. 由于要在不同主机上上传文件,所以不能直接通过流的方式来写,需要通过webService来完成,jersey是基于Java的一个轻量级RESTful风格的Web Services框架,它让客户端文件上传变得更简单. 1. maven依赖 spring的一些包以及fileupload和io包这边就不贴出来了.

  • Java+mysql本地图片上传数据库及下载示例

    做一个将本地图片上传到mysql数据库的小实例,顺便也下载下来到桌面检测是否上传成功. 在写代码之前得先在数据库中建立image表,用来存储图片. create table image (id int primary key auto_increment , name varchar(30) COMMENT '名称', content mediumblob COMMENT '图片'); 下面直接上代码: package jdbc_imagetest; import java.io.*; impo

  • java实现图片裁切的工具类实例

    本文实例讲述了java实现图片裁切的工具类.分享给大家供大家参考,具体如下: package com.yanek.util; import java.awt.Rectangle; import java.awt.image.BufferedImage; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.util.Iterator; import javax.im

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

    在很多的网站都可以实现上传头像,可以选择自己喜欢的图片做头像,从本地上传,下次登录时可以直接显示出已经上传的头像,那么这个是如何实现的呢? 下面说一下我的实现过程(只是个人实现思路,实际网站怎么实现的不太清楚) 实现的思路: 工具:MySQL,eclipse 首先,在MySQL中创建了两个表,一个t_user表,用来存放用户名,密码等个人信息, 一个t_touxiang表,用来存放上传的图片在服务器中的存放路径,以及图片名字和用户ID, T_touxiang表中的用户ID对应了t_user中的i

  • java通过模拟post方式提交表单实现图片上传功能实例

    本文实例讲述了java通过模拟post方式提交表单实现图片上传功能.分享给大家供大家参考,具体如下: 模拟表单html如下: <form action="up_result.jsp" method="post" enctype="multipart/form-data" name="form1" id="form1"> <label> <input type="tex

  • java web图片上传和文件上传实例

    图片上传和文件上传本质上是一样的,图片本身也是文件.文件上传就是将图片上传到服务器,方式虽然有很多,但底层的实现都是文件的读写操作. 注意事项 1.form表单一定要写属性enctype="multipart/form-data" 2.为了能保证文件能上传成功file控件的name属性值要和你提交的控制层变量名一致, 例如空间名是file那么你要在后台这样定义 private File file; //file控件名 private String fileContentType;//图

  • Java以struts2为例介绍如何实现图片上传

    总的说图片上传有两种方式,一种是把图片文件写到数据库中,另一种是存到服务器文件目录中.写到数据库中的图片文件需要转换成二进制流的格式,占用数据库空间比较,适合少量图片的存储,比如说,系统中某些小图标,写到数据库中的优点是比较安全,不容易被用户不小心删除. 在struts2中实现(以图片上传为例) 1.FileUpload.jsp代码清单如下: <%@ page language="java" import="java.util.*" pageEncoding=

  • Java实现的图片上传工具类完整实例

    本文实例讲述了Java实现的图片上传工具类.分享给大家供大家参考,具体如下: package com.gcloud.common; import javax.imageio.ImageIO; import java.awt.image.BufferedImage; import java.io.*; /** * 图片上传工具类 * Created by charlin on 2017/9/10. */ public class UploadImageUtil { private String f

  • Java基于装饰者模式实现的图片工具类实例【附demo源码下载】

    本文实例讲述了Java基于装饰者模式实现的图片工具类.分享给大家供大家参考,具体如下: ImgUtil.java: /* * 装饰者模式实现图片处理工具类 * 类似java的io流 - * Img类似低级流可以独立使用 * Press和Resize类似高级流 * 需要依赖于低级流 */ package util; import java.io.File; import java.util.List; /** * 图片工具类(装饰者)和图片(被装饰者)的公共接口 * @author xlk */

  • java图片压缩工具类

    直接上java图片压缩code: import java.awt.Image; import java.awt.image.BufferedImage; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import javax.imageio.ImageIO; public class ImageProcess { /** * 图片 */ private I

  • Java图像处理工具类

    本工具类的功能:缩放图像.切割图像.图像类型转换.彩色转黑白.文字水印.图片水印等 复制代码 代码如下: package net.kitbox.util; import java.awt.AlphaComposite; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Image; import java.awt.Re

随机推荐