校園交友社區(qū)-好網(wǎng)站整體的設(shè)計與實現(xiàn)_第1頁
校園交友社區(qū)-好網(wǎng)站整體的設(shè)計與實現(xiàn)_第2頁
校園交友社區(qū)-好網(wǎng)站整體的設(shè)計與實現(xiàn)_第3頁
校園交友社區(qū)-好網(wǎng)站整體的設(shè)計與實現(xiàn)_第4頁
校園交友社區(qū)-好網(wǎng)站整體的設(shè)計與實現(xiàn)_第5頁
已閱讀5頁,還剩21頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

PAGE第1頁(共26頁)校園交友社區(qū)——好網(wǎng)站整體的設(shè)計與實現(xiàn)摘要:目前主流的社交網(wǎng)站普遍都是綜合性的,例如微博、人人、天涯,大眾通過社交網(wǎng)站可以了解到的信息、資訊是廣闊且分散的,某個高校里的學(xué)生可以通過微博知道遠在外地甚至海外的信息,但對自己學(xué)?;蛑苓叺氖挛飬s不了解。所以我們要做一個校園交友社區(qū),促進校內(nèi)學(xué)生的學(xué)習(xí)交流,該系統(tǒng)基于J2EE,使用Myelipse10工具開發(fā),數(shù)據(jù)庫為Oracle,主要功能是:用戶注冊登錄、發(fā)布心情、文章,留言,創(chuàng)建社團,添加刪除好友等。關(guān)鍵詞:校園交友;MyEclipse10;J2EE;Oracle;Abstract:Thecurrentmainstream

socialnetworkingsites

aregenerally

comprehensive,

forexamplemicro-blog,

Renren,

Tianya,

thepublicthrough

socialnetworkingsites

canbe

learnedinformation,

information

isvast

andscattered,

some

university

students

can

know

thefarfieldandevenoverseas

informationthroughthe

micro-blog,

butfor

theirschoolor

thesurroundingthings

donotunderstand.

Sowehavetodo

a

campus

datingcommunity,

promote

studentlearningexchange,

thesystemisbasedonJ2EE,

usingMyelipse10

developmenttools,databaseisOracle,

themainfunctionis:frontdesk

userregisterandlogin,

mood,

publishedarticles,

comments,

creatingcommunity,

addanddeletefriends...Keywords:SchoolSocialNetwork;MyEclipse10;J2EE;Oracle;1緒論1.1國內(nèi)外研究現(xiàn)狀目前,社交網(wǎng)站的開發(fā)技術(shù)已經(jīng)十分成熟。用到的技術(shù)有很多,比如ASP技術(shù),jsp技術(shù),.net技術(shù),php技術(shù)等,成熟的社交網(wǎng)站有很多,如著名的Facebook,新浪微博等[1]。1.2研究背景和目的背景:目前主流的社交[2]網(wǎng)站普遍都是綜合性的,例如微博、人人、天涯,大眾通過社交網(wǎng)站可以了解到的信息、資訊是廣闊且分散的,某個高校里的學(xué)生可以通過微博知道遠在外地甚至海外的信息,但對自己學(xué)校或周邊的事物卻不了解,區(qū)域性的社交網(wǎng)站由于市場小、盈利少,沒有很多資本和大企業(yè)的介入,發(fā)展緩慢,質(zhì)量有待提高,某些高校內(nèi)部有自己的社交網(wǎng)絡(luò)(如校園BBS),但創(chuàng)新不足,很難引起大量學(xué)生的關(guān)注,學(xué)生了解校園內(nèi)部的事物主要還是通過線下的渠道,如朋友告知、線下的宣傳點、海報等形式,社交網(wǎng)站的目的應(yīng)該是讓不同區(qū)域的人們通過開放的網(wǎng)絡(luò)彼此了解,讓人以更加積極的態(tài)度投入到現(xiàn)實生活的各種活動中,但目前的發(fā)展情況后者并不樂觀,上網(wǎng)的人越對外界了解過多,但對身邊的事物了解過少,讓人沉溺于虛擬的網(wǎng)絡(luò)世界中,區(qū)域性社交網(wǎng)絡(luò)的發(fā)展能改善這一現(xiàn)狀。目的:我們的目標是將校園社交社區(qū)做成一個讓每個學(xué)生的知道,并且能夠讓學(xué)生都喜歡使用,幫助學(xué)生在學(xué)習(xí)、社團活動、社會實踐、交友等方面更加積極、便捷地參與其中,促使校園內(nèi)產(chǎn)生更多的創(chuàng)新,如社團組織能夠更加創(chuàng)新化、專業(yè)化、互動化、趣味化,而不像過去傳統(tǒng)社團那樣死板,增加校園內(nèi)的活動、學(xué)習(xí)氛圍,使我們的社交社區(qū)能成為大學(xué)城的一個公共平臺,促進區(qū)域內(nèi)部更多事物的創(chuàng)新和發(fā)展。2開發(fā)環(huán)境及使用技術(shù)的選擇2.1系統(tǒng)開發(fā)環(huán)境(1)開發(fā)環(huán)境:環(huán)境:JDK,MyEclipse10技術(shù):J2EE數(shù)據(jù)庫:Oracle(2)服務(wù)器端:操作系統(tǒng):Windows7Web服務(wù)器:Tomcat2.2J2EE介紹J2EE[3]是一套全然不同于傳統(tǒng)應(yīng)用開發(fā)的技術(shù)架構(gòu),包含許多組件,主要可簡化且規(guī)范應(yīng)用系統(tǒng)的開發(fā)與部署,進而提高可移植性、安全與再用價值。J2EE組件和“標準的”Java類的不同點在于:它被裝配在一個J2EE應(yīng)用中,具有固定的格式并遵守J2EE規(guī)范,由J2EE服務(wù)器對其進行管理。J2EE規(guī)范是這樣定義J2EE組件的:客戶端應(yīng)用程序和applet是運行在客戶端的組件;JavaServlet和JavaServerPages(JSP)[4]是運行在服務(wù)器端的Web組件;EnterpriseJavaBean[5](EJB)組件是運行在服務(wù)器端的業(yè)務(wù)組件。數(shù)據(jù)庫數(shù)據(jù)庫數(shù)據(jù)庫訪問業(yè)務(wù)處理數(shù)據(jù)訪問層操作界面表示層業(yè)務(wù)邏輯層圖2-1JSP三層構(gòu)架2.3Struts2架構(gòu)介紹當一個HTTP請求到達Struts2的FilterDispatcher,就會被轉(zhuǎn)化成actioncommand.這個actioncommand在穿越了一系列Struts2和XWork的攔截器之后,最后執(zhí)行用戶編寫的Action類,在Action執(zhí)行之后,響應(yīng)還會穿越相同的攔截器(按照與請求相反的順序),最后通過Struts2的HttpServletResponse轉(zhuǎn)換成Web可識別的響應(yīng)(如JSP)。Struts2的體系結(jié)構(gòu),如下圖所示:當一個請求到達Servlet容器(Tomcat)后,將被傳遞給一個標準的過濾器鏈,在這個過濾器鏈中包括了可選的ActionContextCleanUp過濾器.當在Struts2Web應(yīng)用程序中集成SiteMesh時,才會用到此鏈。接下來,必須的FilterDispatcher被調(diào)用,它輪詢ActonMapper,以便確認這個請求是否應(yīng)該調(diào)用一個action。如果ActionMapper確定了一個請求應(yīng)該被調(diào)用,那么FilterDispatcher就把控制權(quán)委派給ActionProxy,ActionProxy詢問框架的配置文件管理器(它從struts.xml文件中讀取配置信息),接下來,ActionProxy創(chuàng)建一個實現(xiàn)了命令模式的ActionInvocation,ActionInvocation在調(diào)用action之前會一次調(diào)用所有配置的連接器。一旦action執(zhí)行返回,ActionInvocation就要struts.xml里面配置),然后執(zhí)行這個result,通常情況下result會調(diào)用JSP或者freeMarker模板呈現(xiàn)頁面(但不總是這樣,result也可以是一個action鏈)。2.4Oracle介紹ORACLE[6]數(shù)據(jù)庫系統(tǒng)是美國ORACLE公司(甲骨文)提供的以分布式數(shù)據(jù)庫為核心的一組軟件產(chǎn)品,是目前最流行的客戶/服務(wù)器(CLIENT/SERVER)或B/S體系結(jié)構(gòu)的數(shù)據(jù)庫之一。比如SilverStream就是基于數(shù)據(jù)庫的一種中間件。ORACLE數(shù)據(jù)庫是目前世界上使用最為廣泛的數(shù)據(jù)庫管理系統(tǒng),作為一個通用的數(shù)據(jù)庫系統(tǒng),它具有完整的數(shù)據(jù)管理功能;作為一個關(guān)系數(shù)據(jù)庫,它是一個完備關(guān)系的產(chǎn)品;作為分布式數(shù)據(jù)庫它實現(xiàn)了分布式[7]處理功能。但它的所有知識,只要在一種機型上學(xué)習(xí)了ORACLE知識,便能在各種類型的機器上使用它。3系統(tǒng)的需求分析功能需求分析系統(tǒng)的功能主要分為:查詢搜索用戶登錄、注冊狀態(tài)、文章發(fā)布社團的創(chuàng)建和加入校園信息動態(tài)展示留言發(fā)布個人信息的添加、修改好友的添加、刪除性能需求分析該系統(tǒng)性能上應(yīng)滿足:操作簡單,界面友好;運行高效,方便后臺管理;具有良好的可擴展性,方便將來添加新的功能模塊。可行性分析該系統(tǒng)中增刪改等一系列操作的實質(zhì)是對數(shù)據(jù)庫[8]進行操作。主要是訪問數(shù)據(jù)庫,取出目標記錄,或者是通過搜索關(guān)鍵字來查詢數(shù)據(jù)庫,或者是更新數(shù)據(jù)庫等。4系統(tǒng)總體設(shè)計系統(tǒng)功能模塊劃分根據(jù)用戶需求,將該系統(tǒng)分為以下八個功能模塊:用戶注冊/登錄模塊個人管理模塊(資料修改、上傳頭像、注銷登出)文章發(fā)布模塊狀態(tài)發(fā)布模塊社團模塊活動發(fā)布與報名圖片及視頻上傳好友模塊留言模塊檢索模塊其中,各模塊主要功能如下:用戶注冊/登錄模塊:已注冊用戶,登錄后進入網(wǎng)站首頁,可以發(fā)布狀態(tài)、創(chuàng)建群組、添加好友及修改個人信息等;未注冊用戶,先進行注冊,然后自動登錄。其中登錄中,用session(會話)對象,以確保在未登錄的情況下用戶不能在主界面進行操作,起防盜作用;個人管理模塊:指用戶可以上傳頭像以及修改個人資料。文章發(fā)布模塊:指用戶可以發(fā)布文章。狀態(tài)發(fā)布模塊:發(fā)布個人心情狀態(tài)。社團模塊:可以創(chuàng)建管理社團,并在社團發(fā)布信息,只有成員才能見到。好友模塊:可以添加刪除好友。留言模塊:對用戶發(fā)布的相應(yīng)的狀態(tài)、文章進行留言。檢索[9]模塊:搜索網(wǎng)站內(nèi)的用戶。數(shù)據(jù)庫設(shè)計用戶信息表字段名數(shù)據(jù)類型長度說明描述idnumber不限主鍵用戶唯一標識emailVarchar2100Unique用戶登錄郵箱PasswordVarchar2100Notnull用戶登錄密碼SexNumber2可為空0男性,1女性RealnameVarchar220Notnull用戶真實姓名SchoolVarchar230Notnull用戶所在學(xué)校academyVarchar230Notnull用戶所在學(xué)院majorVarchar230Notnull用戶所讀專業(yè)PhoneVarchar220可為空用戶電話QQVarchar230可為空用戶QQPhoto_urlVarchar2100可為空用戶頭像地址Born_dateVarchar220可為空用戶出生日期Regist_dateVarchar220Notnull注冊時間群組表字段名數(shù)據(jù)類型長度說明描述idnumber不限主鍵群組唯一標識Group_nameVarchar2100Notnull群組名稱DescriptionVarchar2200可為空群組描述Owner_idNumber不限Notnull,外鍵創(chuàng)建者idPhoto_urlVarchar2100可為空群組頭像地址Create_dateVarchar220Notnull創(chuàng)建時間用戶狀態(tài)表字段名數(shù)據(jù)類型長度說明描述idnumber不限主鍵狀態(tài)唯一標識TypeVarchar210Notnull群組心情文章TitleVarchar2100可為空文章標題TextVarchar24000可為空狀態(tài)內(nèi)容User_idNumber不限Notnull,外鍵發(fā)布者idPost_dateVarchar220Notnull發(fā)布時間Group_idNumber不限D(zhuǎn)efault‘0’當type為group用戶留言表字段名數(shù)據(jù)類型長度說明描述idnumber不限主鍵留言唯一標識TypeVarchar210Notnull群組心情文章Subject_idNumber不限Notnull,外鍵留言者idObject_idNumber不限Notnull,外鍵被留言對象idTextVarchar24000可為空留言內(nèi)容comment_dateVarchar220Notnull留言時間用戶關(guān)系表字段名數(shù)據(jù)類型長度說明描述idnumber不限主鍵關(guān)系唯一標識TypeVarchar210Notnull好友或群組成員Subject_idNumber不限Notnull,外鍵添加者idObject_idNumber不限Notnull,外鍵被添加者idStart_timeVarchar220Notnull申請時間群組關(guān)系表字段名數(shù)據(jù)類型長度說明描述idnumber不限主鍵文件唯一標識Group_idNumber不限Notnull,外鍵群組idUser_idNumber不限Notnull,外鍵加入者idIs_ConfirmNumber不限D(zhuǎn)efault‘0’是否確認加入用戶文件表字段名數(shù)據(jù)類型長度說明描述idnumber不限主鍵文件唯一標識TypeVarchar210Notnull心情或群組Owner_idNumber不限Notnull,外鍵上傳者idAction_idNumber不限Notnull,外鍵狀態(tài)idgroup_idNumber不限D(zhuǎn)efault‘0’當type為group時,群組idfile_urlVarchar2100可為空文件地址群組活動表字段名數(shù)據(jù)類型長度說明描述idnumber不限主鍵文件唯一標識User_idnumber10Notnull,外鍵創(chuàng)建者IDGroup_idnumber不限Notnull,外鍵所屬群組IDnameVarchar2不限Notnull活動名稱descriptionVarchar2不限D(zhuǎn)efault‘0’活動內(nèi)容描述Publish_timeVarchar230可為空發(fā)布時間Photo_urlVarchar2200可為空活動主題LOGO活動報名表字段名數(shù)據(jù)類型長度說明描述idnumber不限主鍵唯一標識Activity_idNumber不限Notnull,外鍵報名活動的idUser_idNumber不限Notnull,外鍵報名者idJoin_timeVarchar230Notnull報名時間5系統(tǒng)實現(xiàn)(界面及代碼實現(xiàn))登錄\注冊登錄界面在登錄網(wǎng)站時,先要進行身份驗證,這里登錄的action是loginAction.java進行驗證,若登錄成功,則會在session保存該用戶的相關(guān)信息,如session.put("loginUserid",userid);。為了確保用戶登錄之前不能進行操作,用session對象設(shè)置“防盜”,在登錄程序中加入以下代碼[1]:<s:iftest=”#session.loginUserid==null”><%response.sendRedirect(“registerAction.action”);%></s:if>若登錄失敗,則會跳轉(zhuǎn)回登陸頁面,并輸出相關(guān)信息以提示用戶賬號或密碼輸入有誤。注冊時,使用了ajax技術(shù)去異步驗證是否已經(jīng)存在該用戶所輸入的注冊郵箱,所存在就會返回相應(yīng)的提示,如下圖所示$(function(){$('#email').input(function(){$.ajax({type:"post",url:"registCheck.action",data:{ post:$("#email").val() },success:function(data){ if(data==1){ $('#email').parent().append("<labelstyle='color:red;'>此郵箱已經(jīng)被注冊</label>");}}});});});注冊界面注冊時會驗證信息的完整性和正確性,當輸入郵箱時會通過ajax向checkEamil.action發(fā)送post請求,去驗證用戶當前輸入的郵箱在數(shù)據(jù)庫的用戶表中是否已經(jīng)存在,若已經(jīng)存在,則會返回錯誤信息:該郵箱已經(jīng)被注冊,此時點擊注冊按鈕是無效的,若不存在則錯誤信息消失,其他信息欄也會驗證完整度,例如兩次密碼輸入的一致性。用戶注冊或登錄成功后,點擊主頁右上角的注銷按鈕方能退出登錄,這里是通過將session里的loginUserid設(shè)置為null,從而退出登錄狀態(tài)ActionContextact=ActionContext.getContext(); Map<String,Object>session=act.getSession(); session.put("loginUserid",null);個人主頁個人主頁個人主頁分為左右兩部分,左邊是個人資料,頭像等信息,若查看者為本人,可以看到基本信息欄右側(cè)有編輯按鈕,可以編輯相關(guān)資料,如修改密碼、修改個人信息等,非好友將無法看到基本信息的數(shù)據(jù)。右側(cè)為本人的好友欄、好友請求欄、創(chuàng)建的群組(社團)以及該用戶所加入的群組(社團)。狀態(tài)墻狀態(tài)墻通過Wall.action,采用了當下流行的“瀑布式”分頁方式來進行顯示,在這里可以發(fā)布自己的狀態(tài)、心情或感想,同時可以看到你的好友發(fā)布的狀態(tài)。在發(fā)布時,我采用的是ajax技術(shù)來進行發(fā)布,不用刷新頁面即可得到結(jié)果,相關(guān)代碼在Wall_Post.js、Wall_Scroll.js、Wall_ajax.java和Wall_PostAction.java里,以下是部分代碼:$(function(){$('#wall_post').click(function(){$.ajax({type:"post",url:"Wall_PostAction.action",data:{ post:$("#post").val(), user_id:parseInt($("#user_id").val()) },success:function(data){ $("#post").val(""); $("#wall-wrapper").prepend(data); setTimeout($('.wall-element').fadeIn(800),1000);}});});});瀑布分頁的ajax:$(function(){ $(document).scroll(function(){ if($(window).scrollTop()+50>=$(document).height()-$(window).height()){ $.ajax({ type:"post", url:"Wall_ajax.action", data:{ page:$("#page").val() }, success:function(data){ page=parseInt($("#page").val())+1; $("#page").val(page); $("#wall-wrapper").append(data); setTimeout($('.wall-element').fadeIn(800),1000); } }); } });});校園動態(tài)展示校園動態(tài)展示界面在校園動態(tài)展示頁面,可以看到自己所創(chuàng)建的群組或加入的群組的成員在群組所發(fā)表的言論,也可以看到好友所發(fā)表的狀態(tài)。群組(社團)模塊群組相關(guān)界面點擊群組要在個人頁面下方便查看,可以看到右邊的創(chuàng)建的群組和加入的群組兩欄,所查看其它用戶的個人頁面時,對方還不是你好友,則無法看到對方所創(chuàng)建和加入的群組,當進入的群組是自己所創(chuàng)建的群組時,可以看到右邊有成員申請和群組成員兩欄,只有通過創(chuàng)建者的同意方能正式加入到該群組,就可以在該群組內(nèi)發(fā)表言論以及查看別的群員在群組內(nèi)的對話了,當然創(chuàng)建者還可以刪除群組內(nèi)的成員。創(chuàng)建群組的相關(guān)代碼:Stringrealpath=ServletActionContext.getServletContext().getRealPath("/group/images/"); Maprequest=(Map)ActionContext.getContext().get("request"); Filedir=newFile(realpath); //如果該目錄不存在,就創(chuàng)建 if(!dir.exists()){ dir.mkdirs(); } intpos=imageFileName.lastIndexOf("."); imageContentType=imageFileName.substring(pos+1);//文件后綴名 InputStreamis=newFileInputStream(image); OutputStreamos=newFileOutputStream(newFile(dir,imageFileName)); byte[]buf=newbyte[1024]; intlen=-1; while((len=is.read(buf))!=-1){ os.write(buf,0,len); } is.close(); os.close(); DateFormatdf=newSimpleDateFormat("yyyy-MM-ddHH:mm:ss"); StringcreateDate=df.format(newDate()); Integerself_id=(Integer)ActionContext.getContext().getSession().get("loginUserid"); cg.setDescription(description); cg.setGroupName(group_name); cg.setCreateDate(createDate); cg.setOwnerId(self_id); cg.setPhotoUrl("group/images/"+imageFileName); inti=CsUsersGroupSrv.createGroup(cg); this.setGroup_id(i);request.put("group",cg);活動發(fā)布及報名活動發(fā)布該當用戶瀏覽自己的創(chuàng)建的或加入的群組(社團)時,右邊的懸浮框會有活動一欄,群組創(chuàng)建者以及成員都可以發(fā)布活動,讓其他成員報名參加,若是自己發(fā)布的活動,則不會出現(xiàn)報名按鈕,但可以查看報名者列表,如上圖所示?;顒訄竺摦斢脩魹g覽的是別人創(chuàng)建的活動時,則會出現(xiàn)加入按鈕,點擊加入即可報名,再打開報名者列表看就會發(fā)現(xiàn)自己的報名信息,如上圖所示。留言模塊留言可以針對個人狀態(tài)、群組內(nèi)狀態(tài)和文章三種類型進行留言,在后臺我做了區(qū)分,以保證相應(yīng)的留言對應(yīng)到正確的被留言對象中去,留言也采用了ajax異步傳輸技術(shù),這樣可以不用刷新頁面,成功后再從后臺封裝好該留言信息,加載到相應(yīng)的狀態(tài)留言欄里: HttpServletResponseresponse=ServletActionContext.getResponse(); Stringusername=(String)ActionContext.getContext().getSession().get("loginUserName"); Stringuser_academy=(String)ActionContext.getContext().getSession().get("loginUserAcademy"); Stringuser_major=(String)ActionContext.getContext().getSession().get("loginUserMajor"); DateFormatdf=newSimpleDateFormat("yyyy-MM-ddHH:mm:ss"); StringcommentDate=df.format(newDate()); cc.setCommentDate(commentDate); cc.setText(this.getComment()); cc.setType(this.getComment_type()); cc.setObjectId(this.getAction_id()); cc.setSubjectId(this.getUser_id()); intcomment_id=CsUsersCommentSrv.addComment(cc); cc=CsUsersCommentSrv.searchComment(comment_id); Stringmes="<divclass='comments-elementcomments-element-"+comment_id+"'style='display:none'>"+ "<imgsrc='"+cc.getCsUsersUser().getPhotoUrl()+"'style='width:50px;height:50px;'/>"+ "<divclass='comments-info'>"+ "<divclass='school-info'>"+ "<pstyle='font-size:13px'><ahref='Profile.action?uid="+cc.getCsUsersUser().getId()+"'>"+cc.getCsUsersUser().getRealname()+ "</a></p><pstyle='font-size:13px'>"+cc.getCsUsersUser().getAcademy()+ "</p><pstyle='font-size:13px'>"+cc.getCsUsersUser().getMajor()+"</p></div><pclass='comment-text-info'>"+this.getComment()+"</p></div></div>"; try{ ServletActionContext.getResponse().setCharacterEncoding("UTF-8"); response.setContentType("text/html;charset=UTF-8"); response.getWriter().write(mes); System.out.println(comment_id); }catch(IOExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); }圖片及視頻上傳圖片上傳在發(fā)布狀態(tài)時,可以順帶上傳圖片,這里限制了上傳的圖片最多為3張,超過3張則無法上傳,這里存儲圖片的方式是用File流的方式將圖片從用戶的本地端儲存到服務(wù)器的相應(yīng)文件夾中,再將圖片的url地址保存到數(shù)據(jù)庫中,這樣展示圖片只需要讀取到服務(wù)器[10]端對應(yīng)圖片的url地址就行了,相關(guān)代碼: CsUsersActionca=newCsUsersAction(); DateFormatdf=newSimpleDateFormat("yyyy-MM-ddHH:mm:ss"); Stringpost_time=df.format(newDate()); Stringtype="post"; System.out.println(this.getPost()); ca.setType(type); ca.setUserId(Integer.parseInt(this.getUser_id())); ca.setText(this.post); ca.setPostDate(post_time); Patternpattern=Ppile("http://.*(?=\".*)");Matchermatcher=pattern.matcher(post_video);Stringstr2=null;while(matcher.find()){ post_video=matcher.group().replace("'","");} ca.setVideoUrl(post_video); intpost_id=CsUsersActionSrv.addWallAction(ca); //取得需要上傳的文件數(shù)組File[]files=getImage();if(files!=null&&files.length>0){for(inti=0;i<files.length;i++){//建立上傳文件的輸出流,getImageFileName()[i] Stringrealpath=ServletActionContext.getServletContext().getRealPath("/wallphoto/"+post_id); Maprequest=(Map)ActionContext.getContext().get("request"); Filedir=newFile(realpath); //如果該目錄不存在,就創(chuàng)建 if(!dir.exists()){ dir.mkdirs(); } intpos=getImageFileName()[i].lastIndexOf("."); CsUsersFilecf=newCsUsersFile(); cf.setOwnerId(post_id); cf.setOwnerType("post"); cf.setUploadTime(post_time); cf.setFileUrl("wallphoto/"+post_id+"/"+getImageFileName()[i]); CsUsersFileSrv.SaveWallFile(cf);FileOutputStreamfos=newFileOutputStream(newFile(dir,getImageFileName()[i]));//建立上傳文件的輸入流FileInputStreamfis=newFileInputStream(files[i]);byte[]buffer=newbyte[1024];intlen=0;while((len=fis.read(buffer))>0){fos.write(buffer,0,len);}fos.close();

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論