TML+PHP超大視頻上傳實例,PHP批量上傳大文件技巧,PHP批量上傳大文件,PHP實現批量上傳圖片的技巧,PHP結合WEB UPLOADER插件實現分段,PHP結合WEB UPLOADER插件實現切片上傳,PHP結合WEB UPLOADER插件實現斷點續傳,PHP結合WEB UPLOADER插件實現大文件上傳,PHP結合UPLOADER插件實現分片上傳文件,PHP結合百度UPLOADER插件實現分片上傳文件,PHP結合WEB UPLOADER插件實現分片上傳文件,前端HTML5,JS,JQ,VUE2,VUE3,React,
前端的話都有可能用到,VUE2,VUE3,HTML5,也不一定是VUE, 公司內部有自己的產品,有些產品是之前開發的,沒有用VUE,而是用的普通的HTML模板,用的也還好。
后端PHP5,PHP6,PHP7,PHP8,ThinkPHP,
客戶是武漢這邊的一家企業。
webuploader的組件公司研發部的同事也調研過,研究過他的實現,實際上他就是對Flash和HTML5進行了一個封裝,本質還是調的HTML5的API,兼容性不是特別好。可擴展性也比較差,可維護性就更不用說了,之前公司項目遇到過坑,到現在連webuploader開發人員都聯系不上。想找他們尋求一點技術支持的幫助,真的是想都不要想。公司這一塊也愿意付費,就是付費尋求的技術支持,也不行。這一點真的讓哥幾個給整郁悶了。領導也不太滿意,所以還是找有技術支持的產品。研發部的同事稱這些項目是免費坑人項目。
服務器支持Linux,Windows,macOS,CentOS,中標麒麟,銀河麒麟,統信,龍芯,華為鯤鵬,
數據庫支持MySQL,達夢數據庫,人大金倉
需要提供前端源碼,后端源碼,控件源碼
需要提供7*24小時技術支持,長期技術支持,長期維護服務
需要提供手機,QQ,微信,企業微信,電子郵箱等聯系方式
需要支持包含IE在內的全部瀏覽器
終端需要支持Windows,macOS,Linux,信創國產化環境,中標麒麟,銀河麒麟,統信UOS,龍芯,華為
功能需要支持10G,50G,100G大文件上傳和斷點續傳,刷新續傳,重啟續傳
支持超大文件分片,分段,分塊,分割上傳下載,斷點續傳
支持文件夾上傳,下載斷點續傳,支持文件夾層級結構,層級結構信息保存到數據庫,下載的時候同樣保留層級結構
支持加密上傳,下載加密,端到端加密,國密SM4加密算法,數據加密傳輸,傳輸過程中要保證數據是加密的。
版本:6.5.40
代碼:https://gitee.com/xproer/up6-php/tree/6.5.40/
安裝環境
PHP:7.2.14
調整塊大小
NOSQL
NOSQL不需要任何配置,可以直接訪問測試
SQL
創建數據庫
您可以直接復制腳本進行創建
配置數據庫連接
6.安裝依賴
訪問頁面進行測試
數據表中的數據
相關參考:
文件保存位置
php5教程,
源碼工程文檔:https://drive.weixin.qq.com/s?k=ACoAYgezAAw1dWofra
源碼報價單:https://drive.weixin.qq.com/s?k=ACoAYgezAAwoiul8gl
OEM版報價單:https://drive.weixin.qq.com/s?k=ACoAYgezAAwuzp4W0a
控件源碼下載:https://drive.weixin.qq.com/s?k=ACoAYgezAAwbdKCskc
景介紹:當我們在從事大項目或團隊開發工作時,我們經常會發現我們寫的代碼,凌亂、難以閱讀并且難以擴展。尤其是當一段時候后我們回頭再看自己的代碼,必須回想起當初自己寫的時候的思路才能看懂。
因此,人們嘗試在代碼風格上保持統一,然而,最大的困難是:修改一個較小的問題,都可能創建更多丑陋的 hack,也可能 CSS 的小改變會影響 JavaScript 的功能。但是這些問題能在我們的項目開始的時候精心規劃,就能很大程度上避免這些問題。今天就來討論一下如何寫一份不錯的CSS代碼
要保持良好的CSS代碼,首先需要訂立一致的CSS團隊規范,這就必須從CSS架構講起。
目前CSS主要有以下五種設計架構
面向對象的CSS,
在OOCSS的基礎上,出現了另一種設計模式
也可以被當成一種命名規范,本質上使頁面結構清晰
塊(Block)、元素(Element__)、修飾符(Modifier--)
有以下幾個規則
可以明顯發現
在面對組件化的場景時,Block 代表邏輯上和功能上獨立的頁面組件。Element封裝了行為(JavaScript)、模板、樣式(CSS)和其他實現技術。
舉個例子
<header class="header">
<img class="logo">
<form class="search-form">
<input class="input">
<button class="button"></button>
</form>
<ul class="lang-switcher">
<li class="lang-switcher__item">
<a class="lang-switcher__link" href="url">en</a>
</li>
<li class="lang-switcher__item">
<a class="lang-switcher__link--active" href="url">ru</a>
</li>
</ul>
</header>
在React當中,也采用了這樣的命名方式
BEMnaming工具[1],提供BEM命名的檢測
然而在面對大型的項目時CSS的凌亂也很難讓開發者愿意在茫茫多的代碼中尋找可復用的代碼
(What’s Smacss)[https://smacss.com/]
設計的主要規范有三點:
為了實現清晰的CSS結構,將CSS分為
其中尤其建議JavaScript解除和樣式的耦合
<button class="btn btn--buy js-buy-now"></button>
命名規范上出現了一些差異
.layout-header
.is-hidden
.theme-nav
最小化適配深度,減少html和css的耦合度,避免html的變動增加對css的影響
.sidebar ul h3 {}
.side {}
對CSS進行了更加詳細的分層
如果從功能的角度上看呢,是將Base分成了Settings、Tools、Generic和Base,而Objects、Components和Trumps則分別對應Layout、Module、(State、Theme),而這樣設計的好處在于可以將代碼的復用性進一步提升
一個樣式屬性一個類,其中的典型代表就是TailwindCSS[2],缺點則是破壞了語義化
.block{ display: block; }
.hidden { display: none; }
.p-2 { padding: 0.75rem; }
.flex { display: flex; }
.text-base { font-size: 1rem; }
.bg-green-200 { background-color: #123456 }
<div className="m-2 p-2 text-2xl text-gray-500">I am Ok</div>
而上述的架構思想,更多則是需要團隊成員的一致性認同,才能實現在代碼風格上的統一。
除了這些開發自律性上的代碼規范外,還有什么其他的方式來提升CSS質量呢?
在預處理器中,同樣提供了眾多的方法來簡化與控制CSS代碼,以stylus為例
font-size = 14px
body
font font-size Arial, sans-serif
pad(types = padding, n = 5px)
if padding in types
padding n
if margin in types
margin n
body
pad()
body
pad(margin)
body
pad(padding margin, 10px)
// Yields:
body {
padding: 5px;
}
body {
margin: 5px;
}
body {
padding: 10px;
margin: 10px;
}
add(a, b = a)
a + b
add(10, 5)
// => 15
get(hash, key)
return pair[1] if pair[0] == key for pair in hash
hash = (one 1) (two 2) (three 3)
get(hash, two)
// => 2
get(hash, three)
// => 3
get(hash, something)
// => null
// 提取顏色分量
red(#c00)
// => 204
red(#000, 255)
// => #f00
// 屬性插值
vendor(prop, args)
-webkit-{prop} args
-moz-{prop} args
{prop} args
border-radius()
vendor('border-radius', arguments)
box-shadow()
vendor('box-shadow', arguments)
button
border-radius 1px 2px / 3px 4px
// Yields:
button {
-webkit-border-radius: 1px 2px / 3px 4px;
-moz-border-radius: 1px 2px / 3px 4px;
border-radius: 1px 2px / 3px 4px;
}
// 選擇器插值
table
for row in 1 2 3 4 5
tr:nth-child({row})
height: 10px * row
// Yields:
table tr:nth-child(1) {
height: 10px;
}
table tr:nth-child(2) {
height: 20px;
}
table tr:nth-child(3) {
height: 30px;
}
table tr:nth-child(4) {
height: 40px;
}
table tr:nth-child(5) {
height: 50px;
}
mySelectors = '#foo,#bar,.baz'
{mySelectors}
background: #000
Yields:
#foo,
#bar,
.baz {
background: #000;
}
// 對象插值
foo = {
width: 10px,
height: 20px,
'&:hover': {
padding: 0
}
}
.bar
{foo}
Yields:
// => .bar {
// width: 10px;
// height: 20px;
// }
// .bar:hover {
// padding: 0;
// }
form
input[type=text]
padding: 5px
border: 1px solid #eee
color: #ddd
textarea
@extends form input[type=text]
padding: 10px
//Yielding:
form input[type=text],
textarea {
padding: 5px;
border: 1px solid #eee;
color: #ddd;
}
textarea {
padding: 10px;
}
以下是一種比較建議的注釋和間隔方式,可以自行取用。
/*------------------------------------*\
#A-SECTION
*------------------------------------*/
.selector { }
/*------------------------------------*\
#ANOTHER-SECTION
*------------------------------------*/
/**
* Comment
*/
.another-selector { }
除了縮進,我們還可以通過在規則集之間自由而明智地使用空格來提供大量信息。我們用:
// good case
/*------------------------------------*\
#FOO
*------------------------------------*/
.foo { }
.foo__bar { }
.foo--baz { }
// bad case
.foo { }
.foo__bar { }
.foo--baz { }
同理,在html結構中,也可以使用同樣的規則。
除了以上這些,還有眾多的規范和優化可以繼續探索,如選擇器性能,CSS嵌套,有興趣的讀者可以繼續探索
你會認為 CSS規范是一個有點宏大和不必要的概念:為什么這么簡單、這么直接的東西需要像架構一樣被設計成非常復雜的東西?!
正是因為CSS 的簡單性、松散性和不守規矩的性質意味著在任何合理規模上管理(閱讀、馴服)它的最佳方式是通過嚴格和特定的架構。堅實的架構可以幫助我們控制我們的特殊性,強制執行命名約定,管理我們的源代碼順序,創建一個健全的開發環境,并且通常使我們的 CSS 項目管理更加一致和舒適。
總的來說,可以依照一下幾個規則訂立團隊/個人代碼規范,保證代碼的一致性
Correct:
.button {
font-family: Arial, sans-serif;
border: 1px solid black;
background: #fff;
}
.header__button {
margin: 30px;
position: relative;
}
Incorrect:
.header__button {
font-family: Arial, sans-serif;
position: relative;
border: 1px solid black;
margin: 30px;
}
Original:
<button class="button">...</button>
.button {
font-family: Arial, sans-serif;
text-align: center;
font-size: 11px;
line-height: 20px;
}
Extend
<button class="button button_size_s">...</button>
.button {
font-family: Arial, sans-serif;
text-align: center;
font-size: 11px;
line-height: 20px;
}
.button_size_s {
font-size: 13px;
line-height: 24px;
}
巧用mixin和extend
@mixin my-web-font() {
font-family: "My Web Font", sans-serif;
font-weight: bold;
}
.btn {
display: inline-block;
padding: 1em 2em;
@include my-web-font();
}
.foo {
color: red;
}
.bar {
@extend .foo;
}
// 將寫js的方式同樣適用在css上
<div class="layout">
<div class="layout__item two-thirds">
<section class="content">
...
</section>
</div>
<div class="layout__item one-third">
<section class="sub-content">
...
</section>
</div>
</div>
BEM簡介[3]
OOCSS介紹[4]
探索 SMACSS:可擴展的模塊化 CSS 框架[5]
編寫高效的 CSS 選擇器[6]
CSS的單一原則[7]
思考CSS架構[8]
[1]BEMnaming工具: https://github.com/bem/bem-sdk#naming
[2]TailwindCSS: https://www.tailwindcss.cn/
[3]BEM簡介: https://en.bem.info/methodology/quick-start/
[4]OOCSS介紹: http://oocss.org/
[5]探索 SMACSS:可擴展的模塊化 CSS 框架: https://zhuanlan.zhihu.com/p/44851489
[6]編寫高效的 CSS 選擇器: https://csswizardry.com/2011/09/writing-efficient-css-selectors/
[7]CSS的單一原則: https://csswizardry.com/2012/04/the-single-responsibility-principle-applied-to-css/
[8]思考CSS架構: https://zhuanlan.zhihu.com/p/32952130
板基于 vue-cli4 和 Vant-ui 搭建,進行大型 H5 項目開發最佳實踐方案,讓我們來一探究竟
本項目已經為你生成了一個完整的開發框架,下面是整個項目的目錄結構。
├── .github # git log
├── plop-templates # 基本模板
├── public # 靜態資源
│ │── favicon.ico # favicon圖標
│ └── index.html # html模板
├── src # 源代碼
│ ├── assets # 靜態資源
│ ├── components # 全局公用組件
│ ├── constants # 常量
│ ├── core # 分層
│ ├── enum # 枚舉
│ ├── filters # 全局 filter
│ ├── icons # 項目所有 svg icons
│ ├── lang # 國際化 language
│ ├── layout # 全局 layout
│ ├── router # 路由
│ ├── store # 全局 store 管理
│ ├── styles # 全局樣式
│ ├── utils # 全局公用方法
│ ├── pages # pages 所有頁面
│ ├── pwa # 漸進式Web應用
│ ├── App.vue # 入口頁面
│ ├── main.js # 入口文件 加載組件 初始化等
│ └── permission.js # 權限管理
├── tests # 測試
├── .editorconfig # 代碼風格
├── .env.xxx # 環境變量配置
├── .eslintrc.js # eslint 配置項
├── .sentryclirc.js # 前端異常日志監控配置
├── .babel.config # babel 配置
├── plopfile.js # 基本模板配置
├── vue.config.js # vue-cli 配置
├── postcss.config.js # postcss 配置
└── package.json # package.json
...
# 克隆項目
git clone https://github.com/push-over/vue-h5-template.git
# 進入項目目錄
cd vue-h5-template
# 安裝依賴
npm install
# 建議不要用 cnpm 安裝 會有各種詭異的bug 可以通過如下操作解決 npm 下載速度慢的問題
npm install --registry=https://registry.npm.taobao.org
# 本地開發 啟動項目
npm start
TIP
強烈建議不要用直接使用 cnpm 安裝,會有各種詭異的 bug,可以通過重新指定 registry 來解決 npm 安裝速度慢的問題。若還是不行,可使用 yarn 替代 npm。
Windows 用戶若安裝不成功,很大概率是node-sass安裝失敗,解決方案。
另外因為 node-sass 是依賴 python環境的,如果你之前沒有安裝和配置過的話,需要自行查看一下相關安裝教程。
啟動完成后會自動打開瀏覽器訪問 [http://localhost:9000, 你看到下面的頁面就代表操作成功了。
接下來你可以修改代碼進行業務開發了,本項目內建了典型業務模板、模擬數據、狀態管理、國際化、全局路由等等各種實用的功能來輔助開發
# 項目打包
npm run build:xxx
# 自動創建
npm run new
# 規范Git提交
npm run git-cz
# 生成CHANGELOG
npm run genlog
目前前端的一個開發趨勢是以搭建單頁應用 (SPA) 為主的。當應用體系比較大,或者你的應用業務邏輯足夠復雜的時候,會遇到各種各樣的問題,我們隨便提兩點:
*請認真填寫需求信息,我們會在24小時內與您取得聯系。