天天看點

Java實作模拟QQ空間圖檔上傳

Java實作模拟QQ空間圖檔上傳

首先看效果:

<a href="http://s3.51cto.com/wyfs02/M01/59/1A/wKiom1THSHrCYEWgAAC5b4AS8iQ808.jpg" target="_blank"></a>

首先編寫我們的上傳jsp代碼,如下:

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

<code>&lt;%@ page language="java" contentType="text/html; charset=UTF-8"</code>

<code>    </code><code>pageEncoding="UTF-8"%&gt;</code>

<code>&lt;!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"&gt;</code>

<code>&lt;</code><code>html</code><code>&gt;</code>

<code>&lt;</code><code>head</code><code>&gt;</code>

<code>&lt;</code><code>meta</code> <code>http-equiv</code><code>=</code><code>"Content-Type"</code> <code>content</code><code>=</code><code>"text/html; charset=UTF-8"</code><code>&gt;</code>

<code>&lt;</code><code>title</code><code>&gt;Java實作開發QQ空間上傳&lt;/</code><code>title</code><code>&gt;</code>

<code>&lt;</code><code>style</code> <code>type</code><code>=</code><code>"text/css"</code><code>&gt;</code>

<code>body{background: url("image/bg_webp.jpg");}</code>

<code>*{padding: 0px;margin: 0px;}</code>

<code>.qq{width: 520px;height: 70px;margin: 200px auto;border: 1px solid #e6e6e6;background-color: #fff}</code>

<code>.qq .qq_pic{float: right;width: 48px;height: 70px;border-left: 1px solid #eee8d1;background-color: #fafafa;border-right: 1px solid #eee8d1 }</code>

<code>.qq .qq_pic .bg_button{width: 48px;height: 70px;display: block;padding: 20px 0px 0px 10px}</code>

<code>.qq .qq_pic .bg_button:HOVER{background-color: #fff;height: 50px;width: 38px;}</code>

<code>.qq .qq_pic .bg_button i{background: url("image/bg_button.png");background-position: -490px -125px;width: 25px;height: 25px;display: block;}</code>

<code>.qq .qq_pic input{display: none;}</code>

<code>&lt;/</code><code>style</code><code>&gt;</code>

<code>&lt;/</code><code>head</code><code>&gt;</code>

<code>&lt;</code><code>body</code><code>&gt;</code>

<code>    </code> 

<code>    </code><code>&lt;</code><code>form</code> <code>action="&lt;%=request.getContextPath()%&gt;/UploadQQServlet" enctype="multipart/form-data" method="post" id="saveForm"&gt;</code>

<code>        </code><code>&lt;</code><code>div</code> <code>class</code><code>=</code><code>"qq"</code><code>&gt;</code>

<code>                </code><code>&lt;</code><code>div</code> <code>class</code><code>=</code><code>"qq_pic"</code><code>&gt;</code>

<code>                    </code><code>&lt;</code><code>a</code> <code>href</code><code>=</code><code>"#"</code> <code>class</code><code>=</code><code>"bg_button"</code> <code>onclick</code><code>=</code><code>"openBrowser()"</code><code>&gt;</code>

<code>                        </code><code>&lt;</code><code>i</code><code>&gt;&lt;/</code><code>i</code><code>&gt;</code>

<code>                    </code><code>&lt;/</code><code>a</code><code>&gt; </code>

<code>                    </code><code>&lt;</code><code>input</code> <code>type</code><code>=</code><code>"file"</code> <code>id</code><code>=</code><code>"fileName_upload"</code> <code>name</code><code>=</code><code>"file1"</code> <code>onchange</code><code>=</code><code>"saveFile()"</code><code>&gt;  </code>

<code>                </code><code>&lt;/</code><code>div</code><code>&gt;</code>

<code>        </code><code>&lt;/</code><code>div</code><code>&gt;</code>

<code>    </code><code>&lt;/</code><code>form</code><code>&gt;</code>

<code>    </code><code>&lt;</code><code>div</code><code>&gt;</code>

<code>    </code><code>&lt;</code><code>img</code> <code>alt</code><code>=</code><code>"圖檔預覽"</code> <code>src</code><code>=</code><code>"upload/${fileName}"</code> <code>style</code><code>=</code><code>"height: 30px;width: 30px;"</code><code>&gt;</code>

<code>    </code><code>&lt;/</code><code>div</code><code>&gt;</code>

<code>&lt;</code><code>script</code> <code>type</code><code>=</code><code>"text/javascript"</code><code>&gt;</code>

<code> </code><code>function openBrowser(){</code>

<code>   </code><code>var boolean=navigator.appName=="Microsoft Internet Explorer"?true:false;</code>

<code>   </code><code>if(boolean){</code>

<code>       </code><code>document.getElementById("fileName_upload").click();</code>

<code>   </code><code>}else{</code>

<code>        </code><code>var a=document.createEvent("MouseEvents");</code>

<code>        </code><code>a.initEvent("click",true,true);</code>

<code>        </code><code>document.getElementById("fileName_upload").dispatchEvent(a);</code>

<code>   </code><code>}</code>

<code> </code><code>}</code>

<code> </code><code>function saveFile(){</code>

<code>   </code><code>document.getElementById("saveForm").submit();</code>

<code>&lt;/</code><code>script</code><code>&gt;</code>

<code>&lt;/</code><code>body</code><code>&gt;</code>

<code>&lt;/</code><code>html</code><code>&gt;</code>

然後編寫我們的背景代碼,這裡我就簡單使用Servlet

55

56

57

58

59

60

61

62

63

64

65

66

67

68

<code>package</code> <code>com.wonders.upload;</code>

<code>import</code> <code>java.io.File;</code>

<code>import</code> <code>java.io.IOException;</code>

<code>import</code> <code>java.util.Iterator;</code>

<code>import</code> <code>java.util.List;</code>

<code>import</code> <code>java.util.UUID;</code>

<code>import</code> <code>javax.servlet.ServletException;</code>

<code>import</code> <code>javax.servlet.http.HttpServlet;</code>

<code>import</code> <code>javax.servlet.http.HttpServletRequest;</code>

<code>import</code> <code>javax.servlet.http.HttpServletResponse;</code>

<code>import</code> <code>org.apache.commons.fileupload.FileItem;</code>

<code>import</code> <code>org.apache.commons.fileupload.FileItemFactory;</code>

<code>import</code> <code>org.apache.commons.fileupload.FileUploadException;</code>

<code>import</code> <code>org.apache.commons.fileupload.disk.DiskFileItemFactory;</code>

<code>import</code> <code>org.apache.commons.fileupload.servlet.ServletFileUpload;</code>

<code>public</code> <code>class</code> <code>UploadQQServlet </code><code>extends</code> <code>HttpServlet {</code>

<code>    </code><code>public</code> <code>void</code> <code>doGet(HttpServletRequest request, HttpServletResponse response)</code>

<code>            </code><code>throws</code> <code>ServletException, IOException {</code>

<code>        </code> 

<code>        </code><code>doPost(request, response);</code>

<code>    </code><code>}</code>

<code>    </code><code>public</code> <code>void</code> <code>doPost(HttpServletRequest request, HttpServletResponse response)</code>

<code>        </code><code>request.setCharacterEncoding(</code><code>"utf-8"</code><code>);</code>

<code>        </code><code>response.setCharacterEncoding(</code><code>"utf-8"</code><code>);</code>

<code>        </code><code>//擷取檔案路徑</code>

<code>        </code><code>String strPath=request.getRealPath(</code><code>"/"</code><code>)+</code><code>"/upload"</code><code>;</code>

<code>        </code><code>File file =</code><code>new</code> <code>File(strPath);</code>

<code>        </code><code>if</code><code>(!file.exists())file.mkdirs();</code>

<code>        </code><code>FileItemFactory factory=</code><code>new</code> <code>DiskFileItemFactory();</code>

<code>        </code><code>ServletFileUpload upload=</code><code>new</code> <code>ServletFileUpload(factory);</code>

<code>        </code><code>//從請求對象中擷取檔案資訊</code>

<code>        </code><code>List items;</code>

<code>        </code><code>try</code> <code>{</code>

<code>            </code><code>items = upload.parseRequest(request);</code>

<code>        </code><code>if</code><code>(items!=</code><code>null</code><code>){</code>

<code>            </code><code>for</code><code>(</code><code>int</code> <code>i=</code><code>0</code><code>;i&lt;items.size();i++){</code>

<code>                </code><code>Iterator iterator=items.iterator();</code>

<code>                </code><code>while</code><code>(iterator.hasNext()){</code>

<code>                </code><code>FileItem item=(FileItem)iterator.next();</code>

<code>                </code><code>if</code><code>(item.isFormField()){</code>

<code>                    </code><code>continue</code><code>;</code>

<code>                </code><code>}</code><code>else</code><code>{</code>

<code>                    </code><code>String fileName=item.getName();</code>

<code>                    </code><code>Long fileSize=item.getSize();</code>

<code>                    </code><code>int</code> <code>pos=fileName.indexOf(</code><code>"."</code><code>);</code>

<code>                    </code><code>String ext=fileName.substring(pos,fileName.length()); </code>

<code>                   </code><code>fileName=UUID.randomUUID().toString()+ext;</code>

<code>                   </code><code>request.getSession().setAttribute(</code><code>"fileName"</code><code>, fileName);</code>

<code>                   </code><code>File saveFile=</code><code>new</code> <code>File(strPath,fileName);</code>

<code>                   </code><code>item.write(saveFile);</code>

<code>                   </code><code>response.sendRedirect(</code><code>"UploadQQ.jsp"</code><code>);</code>

<code>                 </code><code>}</code>

<code>                </code><code>}</code>

<code>            </code><code>}</code>

<code>        </code><code>}  </code>

<code>        </code><code>} </code><code>catch</code> <code>(Exception e) {</code>

<code>            </code><code>e.printStackTrace();</code>

<code>        </code><code>}</code>

<code>}</code>

ok,基本完成,此代碼練手而用!

本文轉自 小夜的傳說 51CTO部落格,原文連結:http://blog.51cto.com/1936625305/1608855,如需轉載請自行聯系原作者