本文實例講述了java實現的簡單圖片上傳功能。分享給大家供大家參考,具體如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
|
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程序設計有所幫助。
原文鏈接:http://blog.csdn.net/chaoyu168/article/details/49902909