又拍雲php
A. FastAdmin框架是什麼
FastAdmin是一款基於Thinkphp5+Bootstrap的極速後台開發框架。
它的主要特性如下:
基於Auth驗證的許可權管理系統
支持無限級父子級許可權繼承,父級的管理員可任意增刪改子級管理員及許可權設置
支持單管理員多角色
支持管理子級數據或個人數據
強大的一鍵生成功能
一鍵生成CRUD,包括控制器、模型、視圖、JS、語言包、菜單、回收站等
一鍵壓縮打包JS和CSS文件,一鍵CDN靜態資源部署
一鍵生成控制器菜單和規則
一鍵生成API介面文檔
完善的前端功能組件開發
基於AdminLTE二次開發
基於Bootstrap開發,自適應手機、平板、PC
基於RequireJS進行JS模塊管理,按需載入
基於Less進行樣式開發
基於Bower進行前端組件包管理
強大的插件擴展功能,在線安裝卸載升級插件
通用的會員模塊和API模塊
共用同一賬號體系的Web端會員中心許可權驗證和API介面會員許可權驗證
二級域名部署支持,同時域名支持綁定到插件
多語言支持,服務端及客戶端支持
強大的第三方模塊支持(CMS、博客、知識付費問答、在線投票系統、在線客服、移動端商城)
支持CMS、博客、知識付費問答無縫整合Xunsearch全文搜索
第三方小程序支持(預訂小程序、問答小程序、活動報名小程序、商城小程序、博客小程序)
整合第三方簡訊介面(阿里雲、騰訊雲簡訊)
無縫整合第三方雲存儲(七牛、阿里雲OSS、又拍雲)功能
第三方富文本編輯器支持(Summernote、Kindeditor、網路編輯器)
第三方登錄(QQ、微信、微博)整合
第三方支付(微信、支付寶)無縫整合,微信支持PC端掃碼支付
豐富的插件應用市場
B. 通過url地址改變圖片大小
很簡單
你就是想通過url來改變同一張圖片的大小
假如圖片:章001.png;初始像素10*10px;
章001.png;初始像素10*10px;
章002.png;初始像素20*20px;
章003.png;初始像素30*30px;
多創建幾個像素不同內容
相同的圖片
就可以來
地址/!/both/長x寬使用這種地址請求根據你使用什麼框架來決定的
spring
mvc就可以實現
地址/!/both/長x寬/(restful風格)
C. 如何解決百度雲加速緩存
一、動靜均緩存
網路雲加速更新後取消了簡單的勾選配置,其實對於我們來說真的說是福利了,作為首批先鋒測試團成員,下面我就簡單給大家設置一下!很多朋友解析到網路雲加速後就放一邊了,結果速度依然蝸牛,沒有感受到飛的快感,那麼今天我就要帶大家一起挖掘一下網路雲加速真正隱藏屬性。
其實,新版網路雲加速需要自己自定義規則來開啟緩存!下面簡單分享下動態網站在網路雲加速下開啟高速緩存的自定義規則,如圖點擊可進入設置
同樣的,根據前面的黑白名單規則,我們先定個調,一般網站應該是這樣的情況:前台都緩存、後台不緩存、個別頁面要緩存或不緩存。
先看下網路雲加速自定義規則的說明:
提示說明:
規則自定義指對「指定URL」進行頁面級規則定製(支持通配符*)。可對任意子域名、目錄、甚至單個URL進行針對性的加速緩存、安全防護等配置。列表中上下關系決定優先順序,靠上規則優先順序高。站長可以通過點擊「↑」調整優先順序。新增規則優先順序最低,將於30s內生效。
URL指定支持通配符*,例如
1) 對img.xiangta.cc進行特定設置,需增加URL: img.xiangta.cc/*
2) 對xiangta.cc/news/ 進行特定設置,需增加URL: xiangta.cc/news/*
3) 對xiangta.cc所有html頁面進行特定設置,需增加URL: xiangta.cc/*.html
支持通配,這就簡單了!不過免費版只支持3條規則,這個就需要你們合理斟酌一下了,不要看我可以設置10條,我是網路雲加速測試者,永久享用10條頂級以及很多功能。
優先順序從上往下依次降低,所以我們要保證不緩存的規則寫到最上面,才能不會緩存規則覆蓋。
根據我個人經驗,一般網站設置如下3條規則即可:
①、網站後台:xiangta.cc/admin/* 設置為不緩存或細致緩存
②、前端分頁:xiangta.cc/?page=* 設置為不緩存或細致緩存
③、網站前台:*xiangta.cc* 設置為前後通配都緩存,緩存一般為1天或者12小時,20小時,根據自己更新速度設置緩存
Ps:細致緩存其實就是只緩存靜態文件,其中緩存時間或有效期請自行設定即可,無需按圖照辦。另外由於新版網路雲加速現在不能對單個域名設置了,所以最後的緩存規則是前後通配,保證某些網站的二級靜態域名也緩存到位。另外,這只是我個人經驗推薦的配置,比如評論分頁就可以根據自己的需要設置為其他頁面,此處分享僅供參考!
這樣設置好了之後,網站前台刷幾下就可以看到效果了,當然還可以F12到network裡面去看header的緩存命中情況,這就不贅述了。注意本人網站是動態網站。
二、只緩存靜態
動靜都緩存可以解決國內低配VPS的2個尷尬:帶寬和負載。帶寬問題,國內普遍小水管就不用我多說了吧。負載問題則是動態網站一直以來的詬病,刷新快一點,CPU就滿了。
但是,有一些網站,本地已有緩存或者訪問流量並不高,他們不想開啟全站緩存,因為會帶來的各種數據不刷新問題。因此,我們如何既解決速度問題,又兼顧實時數據呢?
當然,開啟CDN不進行整站緩存設置的話,大部分CDN會默認緩存靜態文件,基本滿足以上需求。但是某些CDN有個坑爹的規則:他會和諧某些關鍵詞,訪問有這些關鍵詞的頁面就提示違規並不顯示。
如何解決這個問題?很簡單,通過域名做動靜分離即可。
將靜態鏈接替換為二級域名,並開啟CDN緩存。主域名則不走CDN或走CDN但不開啟緩存。
將靜態鏈接替換為二級域名應該不用我多說了吧?
可當然我個人網站的文件都是分離的。
主域名不走CDN也很簡單,直接在解析時不開啟緩存即可,也就是直接回源:
如果擔心暴露IP,如果是阿里雲ECS,你還可以CNAME到阿里雲的WAF上:
走CDN開啟緩存和走CDN禁止緩存應該也不用我多說了,上文都有分享規則。
如上設置後,你的網站的速度也會很快,當然前提是你的動態部分不卡才行。如果網站還是比較卡,但是你有不想開啟純靜態導致數據不刷新,那麼
①、如果是獨立主機,可以考慮開啟redis或opcache等php動態緩存
②、如果是虛擬主機,可以安裝 DB Cache Reloaded Fix這類數據緩存插件
當然,如果你覺得還是不夠快,那麼心系與她一樣,開啟Nginx的fastcgi緩存!
在這里我推薦一下文件分流存儲服務商,又拍雲價格便宜而且效果很明顯,節點我就不多說了,自己ping一下就知道了,配合著網路雲加速,分分鍾讓你網站秒殺市面上20M帶寬的VPS。
三、總結下區別
方案一 和 方案二 到底有什麼區別呢?
方案一:是將動態和靜態都強制緩存到CDN,這樣就算本地不開啟任何緩存,用戶的訪問速度也是杠杠的。如果想要給搜索引擎蜘蛛一樣的速度,那麼本地最好也開啟一下靜態緩存。
方案二:則是只緩存靜態數據,動態數據依然請求到源伺服器。這樣做的好處是既解決了帶寬尷尬,又解決了前台數據不能實時刷新的問題。因為占帶寬的主要是靜態文件,而非html代碼。我們將大體積的靜態文件託管到CDN加速,源伺服器就只要負擔體積很小的html代碼流量了,速度自然就快了,如果覺得還是不夠快那你就選擇配合使用分布儲存
D. thinkphp怎麼用又拍雲上傳文件
thinkphp內置又拍雲上傳引擎的,修改配置文件就可以
'FILE_UPLOAD_TYPE'=>'ftp',
'UPLOAD_TYPE_CONFIG'=>array(
'host'=>'',//又拍雲伺服器
'username'=>'',//又拍雲用戶
'password'=>'',//又拍雲密碼
'bucket'=>'',//空間名稱
'timeout'=>90,//超時時間
),
E. Wordpress插件過多很臃腫,怎麼優化
緩存就指很多方便了,比如CDN緩存、靜態緩存、資料庫緩存、瀏覽器緩存等等。
1、CDN緩存:CDN的話最好是備案了再起飛,因為大多數沒備案的CDN都是給美國節點,而很多人是香港伺服器,那豈不是繞著太平洋跑?另外,CDN需要正確的配置(寫緩存規則)才能夠達到最好的效果。
2、靜態資料庫緩存:這個呢就不做推薦了,各有各的優點,自己比較效果吧。
3、瀏覽器緩存:這里呢說一下,如果長期更新瀏覽器緩存不要搞太久,很多人在網路雲加速設置個一年什麼的。ServiceWorker的話可以試試,離線打開是不是很裝逼呢
精簡是重要的
很多優秀的主題包含了很多不必要的功能,這時候就需要適當的精簡,畢竟只有骨骼輕才可以飛。
插件的話能用純代碼就用純代碼,插件什麼的卡死了。
一些CSS/JS文件要適當的壓縮合並,減少請求數,因為在HTTP/1.1中每個文件都要握手。
Gzip的話是有必要開的,大家也知道打包文件更小吧。
HTTP/2壓縮了請求頭,而且合並了請求,也就是說全站兩個域名只需兩次請求。
SPDY的話是谷歌的一個項目,本身是為了加快HTTP,不過現在的HTTP/2已經包含了其大部分功能,谷歌也要放棄該項目了
支持HTTP/2的CDN有CloudFlare、騰訊雲、又拍雲、上海雲盾、360網站衛士、魔門雲(非聯盟已回源,備案無國內,只有一兩個節點,巨坑!)等等。
定時清理WordPress的垃圾
壓縮合並讓請求更快
動靜分離讓靜態資源國內載入
如果你是國外主機的話,這個方法十分管用,可以把圖片、CSS、JS文件等託管到國內,不過如果有了HTTP/2的話建議不要搞,因為又要與一個域名握手了。
HTTP/2 SPDY大法好
InstantClick預載入
這個之前提到過,InstantClick當訪客滑鼠懸浮在a鏈接時,InstantClick會非同步請求這個頁面,當訪客點擊時,便瞬間切頁,有木有飛起?不過這玩意會扯出一大堆Bug,像統計、高亮什麼的都需要重載,萌新就別弄了,國內估計也就澤澤大佬的Yo模板自帶了,至於WordPress還沒見過,主題作者也不想撤扯出一大堆問題讓用戶天天問吧。
經常聽一群人說清電腦辣雞,windows有垃圾,WordPress當然也有,例如自動草稿這樣的肯定是不要的東西,這里呢推薦WP Clean Up插件,國人寫的。
希望可以幫助到你,望採納!
F. thinkphp3.2.3 怎麼上傳form表單
上傳表單
在ThinkPHP中使用上傳功能無需進行特別處理。例如,下面是一個帶有附件上傳的表單提交:
<form action="__URL__/upload" enctype="multipart/form-data" method="post" >
<input type="text" name="name" />
<input type="file" name="photo" />
<input type="submit" value="提交" >
</form>
注意,要使用上傳功能 你的表單需要設置 enctype="multipart/form-data"
多文件上傳支持
如果需要使用多個文件上傳,只需要修改表單,把
<input type='file' name='photo'>
改為
<input type='file' name='photo1'>
<input type='file' name='photo2'>
<input type='file' name='photo3'>
或者
<input type='file' name='photo[]'>
<input type='file' name='photo[]'>
<input type='file' name='photo[]'>
兩種方式的多附件上傳系統的文件上傳類都可以自動識別。
上傳操作
ThinkPHP文件上傳操作使用Think\Upload類,假設前面的表單提交到當前控制器的upload方法,我們來看下upload方法的實現代碼:
public function upload(){
$upload = new \Think\Upload();// 實例化上傳類
$upload->maxSize = 3145728 ;// 設置附件上傳大小
$upload->exts = array('jpg', 'gif', 'png', 'jpeg');// 設置附件上傳類型
$upload->rootPath = './Uploads/'; // 設置附件上傳根目錄
$upload->savePath = ''; // 設置附件上傳(子)目錄
// 上傳文件
$info = $upload->upload();
if(!$info) {// 上傳錯誤提示錯誤信息
$this->error($upload->getError());
}else{// 上傳成功
$this->success('上傳成功!');
}
}
上傳類對圖片文件的上傳安全做了支持,如果企圖上傳非法的圖像文件,系統會提示 非法圖像文件。 為了更好的使用上傳功能,建議你的伺服器開啟finfo模塊支持
上傳參數
在上傳操作之前,我們可以對上傳的屬性進行一些設置,Upload類支持的屬性設置包括:
屬性描述
maxSize文件上傳的最大文件大小(以位元組為單位),0為不限大小
rootPath文件上傳保存的根路徑
savePath文件上傳的保存路徑(相對於根路徑)
saveName上傳文件的保存規則,支持數組和字元串方式定義
saveExt上傳文件的保存後綴,不設置的話使用原文件後綴
replace存在同名文件是否是覆蓋,默認為false
exts允許上傳的文件後綴(留空為不限制),使用數組或者逗號分隔的字元串設置,默認為空
mimes允許上傳的文件類型(留空為不限制),使用數組或者逗號分隔的字元串設置,默認為空
autoSub自動使用子目錄保存上傳文件 默認為true
subName子目錄創建方式,採用數組或者字元串方式定義
hash是否生成文件的hash編碼 默認為true
callback檢測文件是否存在回調,如果存在返迴文件信息數組
上面的屬性可以通過兩種方式傳入:
實例化傳入
我們可以在實例化的時候直接傳入參數數組,例如:
$config = array(
'maxSize' => 3145728,
'rootPath' => './Uploads/',
'savePath' => '',
'saveName' => array('uniqid',''),
'exts' => array('jpg', 'gif', 'png', 'jpeg'),
'autoSub' => true,
'subName' => array('date','Ymd'),
);
$upload = new \Think\Upload($config);// 實例化上傳類
關於saveName和subName的使用後面我們會有詳細的描述。
動態賦值
支持在實例化後動態賦值上傳參數,例如:
$upload = new \Think\Upload();// 實例化上傳類
$upload->maxSize = 3145728;
$upload->rootPath = './Uploads/';
$upload->savePath = '';
$upload->saveName = array('uniqid','');
$upload->exts = array('jpg', 'gif', 'png', 'jpeg');
$upload->autoSub = true;
$upload->subName = array('date','Ymd');
上面的設置和實例化傳入的效果是一致的。
上傳文件信息
設置好上傳的參數後,就可以調用Think\Upload類的upload方法進行附件上傳,如果失敗,返回false,並且用getError方法獲取錯誤提示信息;如果上傳成功,就返回成功上傳的文件信息數組。
$upload = new \Think\Upload();// 實例化上傳類
$upload->maxSize = 3145728 ;// 設置附件上傳大小
$upload->exts = array('jpg', 'gif', 'png', 'jpeg');// 設置附件上傳類型
$upload->rootPath = './Uploads/'; // 設置附件上傳根目錄
$upload->savePath = ''; // 設置附件上傳(子)目錄
// 上傳文件
$info = $upload->upload();
if(!$info) {// 上傳錯誤提示錯誤信息
$this->error($upload->getError());
}else{// 上傳成功 獲取上傳文件信息
foreach($info as $file){
echo $file['savepath'].$file['savename'];
}
}
每個文件信息又是一個記錄了下面信息的數組,包括:
屬性描述
key附件上傳的表單名稱
savepath上傳文件的保存路徑
name上傳文件的原始名稱
savename上傳文件的保存名稱
size上傳文件的大小
type上傳文件的MIME類型
ext上傳文件的後綴類型
md5上傳文件的md5哈希驗證字元串 僅當hash設置開啟後有效
sha1上傳文件的sha1哈希驗證字元串 僅當hash設置開啟後有效
文件上傳成功後,就可以使用這些文件信息來進行其他的數據操作,例如保存到當前數據表或者單獨的附件數據表。
例如,下面表示把上傳信息保存到數據表的欄位:
$model = M('Photo');
// 取得成功上傳的文件信息
$info = $upload->upload();
// 保存當前數據對象
$data['photo'] = $info[0]['savename'];
$data['create_time'] = NOW_TIME;
$model->add($data);
單文件上傳
upload方法支持多文件上傳,有時候,我們只需要上傳一個文件,就可以使用Upload類提供的uploadOne方法上傳單個文件,例如:
public function upload(){
$upload = new \Think\Upload();// 實例化上傳類
$upload->maxSize = 3145728 ;// 設置附件上傳大小
$upload->exts = array('jpg', 'gif', 'png', 'jpeg');// 設置附件上傳類型
$upload->rootPath = './Uploads/'; // 設置附件上傳根目錄
// 上傳單個文件
$info = $upload->uploadOne($_FILES['photo1']);
if(!$info) {// 上傳錯誤提示錯誤信息
$this->error($upload->getError());
}else{// 上傳成功 獲取上傳文件信息
echo $info['savepath'].$info['savename'];
}
}
uploadOne方法上傳成功後返回的文件信息和upload方法的區別是只有單個文件信息的一維數組。
上傳文件的命名規則
上傳文件的命名規則(saveName)用於確保文件不會產生沖突或者覆蓋的情況。命名規則的定義可以根據你的業務邏輯來調整,不是固定的。例如,如果你採用時間戳的方式來定義命名規范,那麼在同時上傳多個文件的時候可能產生沖突(因為同一秒內可以上傳多個文件),因此你需要根據你的業務需求來設置合適的上傳命名規則。這里順便來說下saveName參數的具體用法。
一、採用函數方式
如果傳入的字元串是一個函數名,那麼表示採用函數動態生成上傳文件名(不包括文件後綴),例如:
// 採用時間戳命名
$upload->saveName = 'time';
// 採用GUID序列命名
$upload->saveName = 'com_create_guid';
也可以採用用戶自定義函數
// 採用自定義函數命名
$upload->saveName = 'myfun';
默認的命名規則設置是採用uniqid函數生成一個唯一的字元串序列。
saveName的值支持數組和字元串兩種方式,如果是只有一個參數或者沒有參數的函數,直接使用字元串設置即可,如果需要傳入額外的參數,可以使用數組方式,例如:
// 採用date函數生成命名規則 傳入Y-m-d參數
$upload->saveName = array('date','Y-m-d');
// 如果有多個參數需要傳入的話 可以使用數組
$upload->saveName = array('myFun',array('__FILE__','val1','val2'));
如果需要使用上傳的原始文件名,可以採用__FILE__傳入,所以上面的定義規則,最終的結果是 myFun('上傳文件名','val1','val2')執行的結果。
二、直接設置上傳文件名
如果傳入的參數不是一個函數名,那麼就會直接當做是上傳文件名,例如:
$upload->saveName = time().'_'.mt_rand();
表示上傳的文件命名採用時間戳加一個隨機數的組合字元串方式。
當然,如果覺得有必要,你還可以固定設置一個上傳文件的命名規則,用於固定保存某個上傳文件。
$upload->saveName = 'ThinkPHP';
三、保持上傳文件名不變
如果你想保持上傳的文件名不變,那麼只需要設置命名規范為空即可,例如:
$upload->saveName = '';
一般來說不建議保持不變,因為會導致相同的文件名上傳後被覆蓋的情況。
子目錄保存
saveName只是用於設置文件的保存規則,不涉及到目錄,如果希望對上傳的文件分子目錄保存,可以設置autoSub和subName參數來完成,例如:
// 開啟子目錄保存 並以日期(格式為Ymd)為子目錄
$upload->autoSub = true;
$upload->subName = array('date','Ymd');
可以使用自定義函數來保存,例如:
// 開啟子目錄保存 並調用自定義函數get_user_id生成子目錄
$upload->autoSub = true;
$upload->subName = 'get_user_id';
和saveName參數一樣,subName的定義可以採用數組和字元串的方式。
注意:如果get_user_id函數未定義的話,會直接以get_user_id字元串作為子目錄的名稱保存。
子目錄保存和文件命名規則可以結合使用。
上傳驅動
上傳類可以支持不同的環境,通過相應的上傳驅動來解決,默認情況下使用本地(Local)上傳驅動,當然,你還可以設置當前默認的上傳驅動類型,例如:
'FILE_UPLOAD_TYPE' => 'Ftp',
'UPLOAD_TYPE_CONFIG' => array(
'host' => '192.168.1.200', //伺服器
'port' => 21, //埠
'timeout' => 90, //超時時間
'username' => 'ftp_user', //用戶名
'password' => 'ftp_pwd', //密碼 ),
表示當前使用Ftp作為上傳類的驅動,上傳的文件會通過FTP傳到指定的遠程伺服器。
也可以在實例化上傳類的時候指定,例如:
$config = array(
'maxSize' = 3145728,
'rootPath' = './Uploads/',
'savePath' = '',
'saveName' = array('uniqid',''),
'exts' = array('jpg', 'gif', 'png', 'jpeg'),
'autoSub' = true,
'subName' = array('date','Ymd'),
);
$ftpConfig = array(
'host' => '192.168.1.200', //伺服器
'port' => 21, //埠
'timeout' => 90, //超時時間
'username' => 'ftp_user', //用戶名
'password' => 'ftp_pwd', //密碼 );
$upload = new \Think\Upload($config,'Ftp',$ftpConfig);// 實例化上傳類
目前已經支持的上傳驅動包括Local、Ftp、Sae、Bcs、七牛和又拍雲等。