java实现图片上传
/* * java multiple upload demo * @author:luowen * @time:2013-11-06 * */ import java.io.*; import java.net.*; class UploadClient { public static void main(String[] args)throws Exception { if(args.length != 1) { System.out.println("输入错误,请正确输入"); return; } File file = new File(args[0]); if(!(file.exists() && file.isFile())) { System.out.println("你输入的不是存在,或者不是文件"); return ; } if(!file.getName().endsWith(".jpg")) { System.out.println("你输入的文件格式不正确,请输入.jpg格式的文件"); return ; } if(file.length() >= 1024*1024*5) { System.out.println("你输入的文件过大,请输入小于5M的文件"); return ; } Socket s = new Socket("127.0.0.1",10000); FileInputStream fos = new FileInputStream(file); OutputStream os = s.getOutputStream(); byte[] by = new byte[1024]; int len; while((len = fos.read(by)) != -1) { os.write(by,0,len); } s.shutdownOutput(); InputStream is = s.getInputStream(); byte[] by1 = new byte[1024]; int num; while((num = is.read(by)) != -1) System.out.println(new String(by,0,num)); fos.close(); s.close(); } } class UploadServer { public static void main(String[] args) { try { ServerSocket ss = new ServerSocket(10000); while(true) { Socket s = ss.accept(); new Thread(new UploadThread(s)).start(); } } catch(Exception e) { throw new RuntimeException("监听端口失败!"); } } } class UploadThread implements Runnable { private Socket s; UploadThread(Socket s) { this.s = s; } public void run() { String ip = s.getInetAddress().getHostAddress(); try { System.out.println(ip + "================connected!"); int count = 0; File file = new File(ip+"("+count+").jpg"); while(file.exists()) file = new File(ip+"("+(count++)+").jpg"); FileOutputStream fos = new FileOutputStream(file); InputStream is = s.getInputStream(); byte[] by = new byte[1024]; int len ; while((len = is.read(by)) != -1) { fos.write(by,0,len); } PrintWriter pw = new PrintWriter(s.getOutputStream(),true); pw.println(ip + "上传成功!"); s.close(); fos.close(); } catch(Exception e) { throw new RuntimeException(ip + "上传失败!"); } } }