多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > web前端 > htmlcss > 【ExtJs】ExtJs的文件上傳

【ExtJs】ExtJs的文件上傳

來源:程序員人生   發布時間:2015-08-20 08:06:28 閱讀次數:4412次

ExtJs的文件上傳也是采取Ajax的方式,基本上,用戶上傳以后,其結果馬上推回給前臺。下面以1個ExtJs圖片上傳系統,說明這個問題。


1、基本目標

實現以下的1個圖片上傳的系統,不是基本圖片格式,大于1M的圖片不給予上傳,上傳成功顯示圖片,上傳不成功,則顯示毛病信息。



2、基本思想

這個工程的目錄結構以下,


如FileUpload.html的HTML布局所示,js與ext-theme-classic下面皆是Ext的基本資源。然后Upload文件夾用來寄存上傳的圖片,FileUpload.html就是前臺布局頁面,里面有1個直接渲染到<body>標簽的Panel組件,Panel組件中,唯一1個文件域,相當于<input type="file" />。上傳成功以后彈出1個可以關閉的窗口window。photoSubmit.php是上傳文件的后臺處理頁面。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf⑻"> <title>extFileUpload</title> <script type="text/javascript" src="../js/ext-all.js"></script> <script type="text/javascript" src="../js/bootstrap.js"></script> <script type="text/javascript" src="../js/ext-lang-zh_CN.js"></script> <link href="../ext-theme-classic/ext-theme-classic-all.css" rel="stylesheet" type="text/css"> </head> <body> </body> </html>

3、制作進程

1、FileUpload.html

這個前臺布局頁面還是使用了表單最基本的anchor布局,然后利用了ExtJs的Ajax表單提交方式,這都在《【ExtJs】ExtJs的表單插件與表單布局、提交與驗證》(點擊打開鏈接)已具體講過。記住ExtJs文件域類型是filefield。此panel的底部工作欄還是采取經典的左右空白站位符,中間放1個“肯定”按鈕的布局方式。此按鈕在用戶沒有選擇文件之間是不可用的。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf⑻"> <title>extFileUpload</title> <script type="text/javascript" src="js/ext-all.js"></script> <script type="text/javascript" src="js/bootstrap.js"></script> <script type="text/javascript" src="js/ext-lang-zh_CN.js"></script> <link href="ext-theme-classic/ext-theme-classic-all.css" rel="stylesheet" type="text/css"> </head> <body> </body> </html> <script> Ext.onReady(function(){ Ext.onReady(function(){ var form1 = Ext.create('Ext.form.Panel', { renderTo: Ext.getBody(), method: 'POST', layout: 'anchor', title: '圖片上傳', items: [{ xtype: 'filefield', anchor: '100%', name: 'file', //此文件傳遞給后臺處理上傳頁面的標識 allowBlank: false, //不允許為空 buttonText: '選擇圖片' //那個上傳按鈕的文字 }], bbar: [{ xtype: 'tbfill' }, { xtype: 'button', text: '肯定', disabled: true, //沒有通過驗證,此按鈕不可用 formBind: true, listeners: { click: function(){ var thisForm = form1.getForm(); thisForm.submit({ url: "photoSubmit.php", success: function(form, action){ Ext.create('Ext.window.Window', { title:'上傳成功', border: false, //沒有邊框 items: [{ xtype: 'image', src: action.result.msg }] }).show(); }, failure: function(form, action){ Ext.create('Ext.window.Window', { title: '上傳失敗', border: false, //沒有邊框 items: [{ xtype: 'label', text: action.result.msg }] }).show(); } }); } } }, { xtype: 'tbfill' }] }); }) }); </script>
2、photoSubmit.php

ExtJs的上傳與否取決與這個頁面打印出來的Json信息。此頁面與《【php】文件的上傳與下載》(點擊打開鏈接)的上傳部份沒有半點區分,使用Jsp的朋友可以參考,《【Servlet】利用Servlet3.0標準與JSTL表達式實現文件上傳系統,支持圖片上傳后顯示》(點擊打開鏈接);《【Struts2】文件的上傳與上傳權限的控制》(點擊打開鏈接);使用Asp或.NET的朋友也是1樣的,關鍵是你的后臺頁面處理完上傳的文件以后,和《【ExtJs】ExtJs的表單插件與表單布局、提交與驗證》(點擊打開鏈接)1樣,打印出以下的字符串讓FileUpload.html辨認:

//ExtJs收到此Json則認為上傳成功 { "success":true, "msg":"ss" //要捎回前臺的信息 } //ExtJs收到此Json則認為上傳失敗 { "success":false, "msg":"ss" //要捎回前臺的信息 }
因此,便有了以下的php代碼:

<?php //看是不是是通過正常途徑傳遞1個file過來了 if(empty($_FILES["file"])){ //如果不是,則是非正常打開此頁,馬上重定向,假裝這頁不存在 header("location: error.php"); exit; } else{ header("Content-type: text/html; charset=utf⑻"); } //這是判斷是不是上傳的file $canUpload=true; //這樣就可以夠獲得上傳的文件名 $fileName=$_FILES["file"]["name"]; //通過對$fileName的處理,就可以夠獲得上傳的文件的后綴名 $fileExtensions=strrchr($fileName, '.'); //這樣就可以夠獲得上傳文件的大小 $fileSize=$_FILES["file"]["size"]; //行將被打印的毛病信息 $errmsg=""; //這里是文件的異常,1般不會出現 if($_FILES["file"]["error"]>0){ $errmsg .= "異常:".$_FILES["file"]["error"]."!"; $canUpload=false; } //如果上傳的文件名的后綴不是以下的幾種則不能上傳 if($fileExtensions!=".bmp" && $fileExtensions!=".gif" && $fileExtensions!=".jpg" && $fileExtensions!=".jpeg" && $fileExtensions!=".png"){ $errmsg .= "只能上傳圖片類型!后綴名必須為:.bmp,gif,jpg,jpeg,png任1!"; $canUpload=false; } //如果上傳的文件大于1M則也不能上傳 if($fileSize>1*1024*1024){ $errmsg .= "文件太大!請少于1M!"; $canUpload=false; } //如果文件可以上傳 if($canUpload==true){ //保存在服務器的名字則是時間戳,加文件后綴名 $saveName=time().$fileExtensions; //獲得服務器的目錄的絕對路徑。 $basepath=str_replace('','/',realpath(dirname(__FILE__).'/'))."/"; //然后則保存這個上傳文件 move_uploaded_file($_FILES["file"]["tmp_name"],$basepath."/upload/".$saveName); //打印上傳成功以后的json給正在等待的ExtJsAjax,捎1個圖片的保存地址給它。正常來講,這個地址還應當入庫。 echo "{ 'success':true, 'msg':'upload/{$saveName}' }"; } else{ //上傳不成功,則捎1個失敗信息給前臺。 echo "{ 'success':false, 'msg':'{$errmsg}' }"; } ?>


生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 亚洲视频免费在线 | 一本大道香蕉高清久久 | 久久精品国内偷自一区 | 影院成人区精品一区二区婷婷丽春院影视 | 2018av在线| 欧美黑人xxxx | 国产精品亚洲片在线不卡 | 日本在线看免费 | 欧美一级片手机在线观看 | 欧美一区二区三区久久久 | 香港三级吃孕妇奶水 | 亚洲免费闲人蜜桃 | 一级做a爱 一区 | 日韩欧美亚洲一区二区综合 | 国产精品久久成人影院 | 欧美精品 在线播放 | 波多野结衣亚洲 | 欧美日本一级在线播放 | 和同事激情中文版在线观看 | 一级做a爰片久久毛片看看 一级做a爰片久久毛片美女 | 最新欧美精品一区二区三区不卡 | 欧美重口另类videos人妖 | 国产成人精品免费视频大全五级 | 一道本一区二区三区 | 宇都宫紫苑最新作品 | xxxx性欧美 | 国产成人久久综合二区 | 国产性色强伦免费看视频 | 亚洲性久久 | 国产精品老女人精品视 | 一区二区视频在线观看高清视频在线 | 一级特黄特黄毛片欧美的 | 乌克兰性欧美精品高清bd | 亚洲成人免费 | 性欧美一级毛片 | 亚洲成人高清在线观看 | 欧洲亚洲一区二区三区 | 国产精品区一区二区三 | 欧美yw精品日本国产精品 | 国产亚洲精品一区二区久久 | 精品的一区二区三区 |