




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
本文格式為Word版,下載可任意編輯——php文件上傳后端處理方法php文件上傳后端處理方法
細致介紹了php文件上傳后端處理小技巧,扶助大家更好的舉行文件上傳操作,感興趣的摯友可以參考一下。
業(yè)務場景一、我們只會選擇一個單個的文件上傳,而且不需要做一些即時的驗證工作。那么,可能并沒有什么優(yōu)化可言了,由于,結果你要做的,只是將這個文件放在表單里結果一起提交,直接處理即可!
業(yè)務場景二、需要上傳多個文件,而且需要時時驗證文件內(nèi)部內(nèi)容,并時行相應頁面顯示。對于這種況,在用戶選擇了上傳文件之后,我們需要立刻將文件上傳,由于我們需要讀取文件里的信息,在結果提交的時候,我們也需要提交一次文件。很明顯,在這里是存在一個重復上傳的.工作的,一個花費用戶時間,二個是花費服務器帶寬資源!優(yōu)化,能夠想得到的方法也很簡樸,能不能在第一次上傳完文件之后,就將文件留存在服務器,真正提交表單的時候,去讀取這個已經(jīng)被上傳的臨時文件即可。是的,這就是我們的處理思路!
業(yè)務場景三、與場景二類似,需要上傳多個文件,但是多個文件可能是分開上傳的。即我們可能第一次上傳了10M,其次次上傳了10M,總共上傳了10次,那么,在服務器端來說的話,一次性提交斷定是超出了上傳大小的限制了,但是假設,我們是分每一次的上傳,這是可以的,而結果提交的時候,我們只需要將簡短的文本信息傳上去即可!
思路確實是簡樸的,看起來,也是沒什么問題,但是,可能我是才能有限,當時著實花了我不少時間去處理這個什么鬼!下面,我將給出一些例如代碼,以供參考:
文件上傳技巧(將單次上傳的文件作為臨時文件存在在服務器端)例如代碼:
1.頁面js處理
//點擊選擇完成文件后,觸發(fā)上傳文件操作,將文件上傳至服務器臨時目次
$.upload-real-file.off.onchange,function
if!$this.val
returnfalse;
varresponseObjId=$this.attrresponse-id;
varresponseObj=$#+responseObjId;
$#Form.ajaxSubmit
url:/aa/bb/uploadTmpApkTool,
resetForm:false,
dataType:json,
beforeSubmit:functionoption
window.loading=layer.load2;
,
success:functiondata,statusText
layer.closewindow.loading;
ifdata.status==1
responseObj.htmldata.apkInfoHtml;
varparentContainer=responseObj.parent.parent,
nameContainer=parentContainer.find.file-name-container;
nameContainer.htmldata.apkName;
nameContainer.attrtitle,data.apkName;
responseObj.find.file-tmp.htmldata.fileInfo;//將文件信息存放于暗藏域中,以便在提交時能找到
$submitId.removeAttrdisabled;
else
;
,
error:functiondata
layer.closewindow.loading;
layer.alert未知錯誤,請稍后再試!;
;
returnfalse;//防止dialog自動關閉
;
2.很明顯,頁面里面需要獲取文件信息,后臺處理代碼(PHP)
$apkConfig=$this-_getApkConfig;
$params=$this-getFilteredParamget;
$subFile=$_FILES[apkToolFiles];
$apkName=$apkInfoHtml=;
ifempty$subFile
$this-ajaxReturnarraystatus=-4,info=請選擇要上傳的文件;
foreach$subFile[name]as$subKey=$subVal
php文件上傳后端處理方法
if$subFile[name][$subKey]
$fileData=$this-_getFileData$subFile,$subKey;
$checkData=array
maxSize=$apkConfig[FILE_MAX_SIZE],
savePath=$apkConfig[TMP_CHILD_PATH],
extArr=arrayapk,
releaseName=str_replace.apk,,$fileData[fileName],//特有
;
$checkResult=$this-_checkFileData$fileData,$checkData;
if$checkResult[status]!=1
$this-ajaxReturn$checkResult;
//移動文件
$filePath=$checkData[savePath]./.$fileData[fileName]..tmp.genRandStr6;;
$this-_moveUploadedFile$fileData[tmpName],$filePath;
$apkInfo=$this-_apkParser$filePath;//解析
if$apkInfo[UMENG_CHANNEL]!=UMENG_CHANNEL_VALUE
@unlink$filePath;//刪除無效文件
$this-ajaxReturnarraystatus=0,info=UMENG_CHANNEL的值要是UMENG_CHANNEL_VALUE才行;
$tmpFileArr[file_info]=array
name=$subFile[name][$subKey],
type=$subFile[type][$subKey],
tmp_name=str_replace$apkConfig[TMP_CHILD_PATH]./,,$filePath,
error=$subFile[error][$subKey],
size=$subFile[size][$subKey],
;//轉存該值,不再重復上傳文件
else
$this-ajaxReturnarraystatus=0,info=文件不能為空;
foreach$apkInfoas$key=$val
$apkInfoHtml.=$key:$val\r\n;
$apkName=$fileData[fileName];
$version=$apkInfo[versionName];
$fileInfo=htmlspecialcharsjson_encode$tmpFileArr[file_info];
$fileInfoHtml=inputname=\apkToolFileTmp[]\value=$fileInfotype=\hidden\/;//確定要輸出前使用htmlspecialchars,否那么不能正確顯示頁面值和獲取至正確的文件信息
$this-ajaxReturnarraystatus=1,info=上傳告成,version=$version,item=$item,apkName=$apkName,apkInfoHtml=$apkInfoHtml,fileInfo=$fileInfoHtml;
3.通過以兩片面代碼的合作,我們在頁面上已經(jīng)有正確的信息了,只需要在結果提交表單的時候,不要將文件提交到服務器,在服務器端處理時,只需將之前上傳的臨時文件移動一下位置即可,這樣就算大功告成了!
$.upload-file-real.attrdisabled,disabled;//提交表單前,禁用上傳文件
4.后續(xù)工作
將臨時文件上傳到服務器后,是沒手段判斷用戶是否取消當前操作的,假設取消了,那么臨時文件將一向存
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 農(nóng)場賣糧合同范例
- 農(nóng)村煤碳出售合同范例
- 北京拆除合同范例
- 原木買賣合同范本
- 原紙訂購合同范例
- 廚房餐具采購合同范例
- 產(chǎn)品采購定制合同范例
- 內(nèi)外墻漆裝修合同范例
- 住房拆遷施工合同范例
- 個人委托代理購房合同范例
- 鋼結構翻新合同
- 學校有限空間作業(yè)安全管理制度
- FURUNO 電子海圖 完整題庫
- 交流與傳承-東西文化碰撞中的藝術嬗變
- 鋼結構加固施工方案鋼結構加固改造方案
- JT-T-1199.1-2018綠色交通設施評估技術要求第1部分:綠色公路
- 蒙臺梭利教學法(學前教育專業(yè))全套教學課件
- 水產(chǎn)動物育種學智慧樹知到期末考試答案章節(jié)答案2024年上海海洋大學
- 部編版七年級道德與法治上冊 第一單元復習課件
- 試樁錨樁法檢測專項方案
- 簡易疲乏量表中文版(BFI-C)
評論
0/150
提交評論