8服務(wù)器接收客戶端圖片并保存在中天下無魚_第1頁
8服務(wù)器接收客戶端圖片并保存在中天下無魚_第2頁
8服務(wù)器接收客戶端圖片并保存在中天下無魚_第3頁
8服務(wù)器接收客戶端圖片并保存在中天下無魚_第4頁
8服務(wù)器接收客戶端圖片并保存在中天下無魚_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

前???節(jié),已完成了JSON格式的純數(shù)據(jù)交互,在App服務(wù)器端的設(shè)計(jì)中,難免會(huì)接收客戶端圖?的上傳,并提供端圖?下同樣,在這??節(jié)中,也使??具來代替App客戶端模擬圖? 要?到的?具是JMeter,它是?個(gè)強(qiáng)?的?具,最為熟知的是HTTP的測(cè)試。這?不去深?了解JMeter,?只是取其?個(gè)?功能——HTTPPOST圖?的功能來完成講解,讀者如JMeter通過官?JMeter:DownloadApacheJMeter安裝bin?錄,點(diǎn)擊jmeter.bat依次選擇“Options”->“ChooseLanguage”->“配置HTTP右擊“Testn”,點(diǎn)擊“添加”->“Threads(Users)”->“線程組右擊“線程組”,點(diǎn)擊“添加”->“Sampler”->“HTTP請(qǐng)求在彈出的「HTTP請(qǐng)求」框中進(jìn)?如下設(shè)置:第1~4步,按照截圖輸?或選擇;第5步,設(shè) 要上傳圖?(?件)的URL路徑6“FilesUpload”;第7步,點(diǎn)擊”添加”;第8步,點(diǎn)擊“瀏覽”,從本地隨便選取? 第9步,輸?該圖?對(duì)象的參數(shù)名image;第10步,輸 上傳的?件類型image?此,請(qǐng)求??已配置完畢,點(diǎn)擊“?件”->“保存測(cè)試”如此打印說明服務(wù)器端接收客戶端請(qǐng)求成功,但由于路徑的代碼未實(shí)現(xiàn),服務(wù)器端返回404與第6?節(jié)?戶請(qǐng)求服務(wù)器端實(shí)現(xiàn)類似,客戶端上傳圖?,?main.py,將調(diào)?url_routerupload_url.py中,upload_urls.py中,對(duì)應(yīng)的URLupload_views.py的UploadFileHandle類,UploadFileHandle為真正的代碼處理邏輯,在校驗(yàn)?戶信息正確的情況下,返回圖?URL給客戶在views下?創(chuàng)建upload?錄,在upload在log?錄下創(chuàng)建uploadstatic?錄下,在實(shí)際項(xiàng)?中,static下的圖??static/image?錄下。創(chuàng)建image?錄如下:url路由,修改handershandlershandlersurl_wrapper([(r"/users/",#-*-coding:utf-8-fromfutureimportunicode_lifrom.upload_viewsimport()urls=(r'file',]#!#!#-*-coding:utf-8-importosfromtornado.escapeimportimportfromlogging.handlersimportimportjson monsimport()fromconf.baseimport)##########Configurelogging#############logFilePath="log/upload/upload.log"logger=logging.getLogger("Upload")handler=formatter=logging.Formatter('%(asctime)s%(filename)s[line:%(lineno)d]%(levelname)s%handler.suffix="%Y%m%d""""handle/upload/filerequest,uploadimageandsaveittostatic/image/:paramimage:uploadimagedefimage_metasrequestargumentERROR_CODE['1001'],1001)image_url=""image_path_list=[]ifimage_metas:pwd=save_image_path=os.path.join(pwd,imagepath:%s"%save_image_path)file_name_listimage_path_list=[SERVER_HEADER+"/static/image/"+iforiinfile_name_list]ret_data={"imageUrl":{"msg":ret_data,"code":0}}))streamisempty") 從common導(dǎo)?save_files?于處理圖?的保存,從conf的base中導(dǎo)?SERVER_HEADER,定義了 服務(wù)器的URL前綴。同時(shí)也看到,upload和users的Log配置(如級(jí)別)是單獨(dú)配置的,這樣有助于單模塊調(diào)試。下?修改conf?錄下的base.py?件,增加如下:#!#!#-*-coding:utf-8-fromsqlalchemyimportcreate_enginefromsqlalchemy.ext.declarativeimportengine=06/demo?charset=utf8',encoding="utf8",BaseDB=#服務(wù)器端IP+Port,請(qǐng)修改對(duì)應(yīng)的SERVER_HEADER="ERROR_CODE{"0":#Userserrorcode"1001"?參?法","1002":"?戶 "2001"上傳圖?不能為空}commons.pyos模塊(importos),importdefsave_files(file_metas,in_rel_path,Savefilestreamtoserverfile_path=""file_name_list=[]formetainfile_metas:file_name=meta['filename']file_path=os.path.join(in_rel_path,file_name)file_name_list.append(file_name)#saveimageasbinarywithopen(file_path,'wb')asup:up.write(meta['body'])return?此,服務(wù)器端的代碼已完成。再次從JMeter觸發(fā)圖?上傳,在觸發(fā)圖?上傳之前,先創(chuàng)建JMeter的結(jié)果樹。所謂結(jié)果樹,就是在觸發(fā)請(qǐng)求,查看服務(wù)器端返回的結(jié)構(gòu)。右擊“HTTP請(qǐng)求”,依次選擇“添加”->”器”->“查看結(jié)果樹”,如下圖所示。{"data":{"data":{"msg":{"imageUrl":g"]},"code":查看log此時(shí),客戶端就可以通過服

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論