文件系統處理的作用:
1. 所有的項目離不開文件處理
2. 可以用文件長時間保存數據
3. 建立緩存, 服務器中文件操作
文件處理
以Linux為模型的, 在Windows只能獲取file, dir或unknow 三種類型
在Linux/Unix下, block, char, dir, fifo, file, link, unknown和種型
block :塊設置文件,磁盤分區,軟驅, cd-rom等
char: 字符設備,I/O 以字符為單位, 鍵盤,打印機等
dir: 目錄也是文件的一種
fifo:
file:
link:
unknown
filetype("目錄或文件名")
is_array();
is_int();
is_string();
is_null;
is_bool();
is_dir -- 判斷給定文件名是否是一個目錄
is_executable -- 判斷給定文件名是否可執行
is_file -- 判斷給定文件名是否為一個正常的文件
is_link -- 判斷給定文件名是否為一個符號連接
is_readable -- 判斷給定文件名是否可讀
is_uploaded_file -- 判斷文件是否是通過 HTTP POST 上傳的
is_writable -- 判斷給定的文件名是否可寫
is_writeable -- is_writable() 的別名
file_exists();
filesize();
is_readable();
is_writeable();
filectime();
filemtime();
fileactime();
stat();
相對路徑:相對于當前目錄的上級和下級目錄
. 當前目錄
.. 上一級目錄
./php/apache/index.php
php/apahce/index.php
login.php
./login.php
../images/tpl/logo.gif
路徑分隔符號
linux/Unix "/"
windows "\"
DIRECTORY_SEPARATOR 為不同平臺,在Windows \ Linux /
不管是什么操作系統PHP的目錄分割符號都支技 / (Linux)
在PHP和Apache配置文件中如果需要指定目錄,也使用/作為目錄符號
絕對路徑:
/ 根路徑
/images/index.php
指的操作系統的根
指的是存放網站的文檔根目錄
分情況
如果是在服務器中執行(通過PHP文件處理函數執行)路徑 則 “根”指的就是操作系統的根
如果程序是下載的客戶端,再訪問服務器中的文件時,只有通過Apache訪問,“根”也就指的是文檔根目錄
http://www.xsphp.com/logo.gif
basename(url)
dirname(url)
pathinfo(url)
創建文件 touch("文件名")
刪除文件 unlink("文件路徑");
移動文件 為文件重新命名 rename("當前文件路徑", “目錄為文件路徑”)
復制文件 copy("當前", “目標”);
一定要有PHP執行這個文件權限, Apache, 一個用戶
和權限設計有關的函數
ls -l 或 ll
_rwxrwxrwx 777
_ 類型 _文件 d 表示是目錄 l b
rwx 表這個文件的擁有者 r讀 w寫 x執行
rwx 表這個文件的擁有者所在的組 r讀 w寫 x執行
rwx 其它用戶對這個為文件的權限 r讀 w寫 x執行
r 4
w 2
x 1
7 7 7 4+2+1 4+2+1 4+2+1
rwx rwx rwx
644
4+2 4 4
rw_ r__ r__
754
chmod u=rwx,g=rw,o=x
chmod 777 demo.php
chmod 644 demo.html
chown mysql demo.php
chgrp apache demo.php
chgrp -- 改變文件所屬的組
chmod -- 改變文件模式
chown -- 改變文件的所有者
filegroup -- 取得文件的組
fileowner -- 取得文件的所有者
讀取文件中的內容
file_get_contents(); //php5以上
file()
readfile();
不足:全部讀取, 不能讀取部分,也不能指定的區域
fopen(URL, mode)
本地文件:
./test.txt
c:/appserv/www/index.html
/usr/local/apahce/index.html
遠程:
http://www.baidu.com
fopen("./test.txt", "a+")
fwrite fread
r , 以只讀模式打開文件
r+ 寫
w, 以只寫的方式打開,如果文件不存在,則創建這個文件,并寫放內容,如果文件存在,并原來有內容,則會清除原文件中所有內容,再寫入(打開已有的重要文件)
w+ 除了可以寫用fwrite, 還可以讀fread
a 以只寫的方式打開,如果文件不存在,則創建這個文件,并寫放內容,如果文件存在,并原來有內容,則不清除原有文件內容,再原有文件內容的最后寫入新內容,(追加)
a+除了可以寫用fwrite, 還可以讀fread
b 以二進制模式打開文件(圖,電影)
t 以文本模式打開文件
fread() // 第一個是讀取指定長度的字符
fgetc() //一次從文件中讀取一個字符
fgets() //一次從文件中讀取一行字符
feof($file); 如果讀取文件出錯,或到文件結束,則返回真
寫入文件
file_put_contents(“URL”, “內容字符串”); //php5以上
如果文件不存在,則創建,并寫入內容
如果文件存在,則刪除文件中的內容,重新寫放
不足: 不能以追加的方式寫,也不能加鎖
fopen()
fwrite() 別名 fputs
第一個參數是文件資源(fopen返回來的),第個參數是寫的內容
本地文件:
./test.txt
c:/appserv/www/index.html
/usr/local/apahce/index.html
遠程:
http://www.baidu.com
http://www.163.com
ftp://user@pass:www.baidu.com/index.php
ftell($file) //返回當前文件針的位置
fseek($file, 10);
fread();
rewind();
目錄的處理
opendir()
readdir()
closedir()
rewinddir()
創建目錄
mkdir(); //創建一個空目錄
刪除目錄
rmdir(); //只可以刪除空目錄
多數PHP程序都使用HTML表單從用戶那里獲取數據并計算結果。
首先創造一個基本的HTML大綱,包含表單控件;然后將控件進行合并(HTML表單必須包括一個提交按鈕,用戶單擊它可以將表單數據發送到服務器。)一個單獨的HTML頁面可以包含多個表單。
包含表單的HTML結構和和普通的HTML結構一樣。
<HTML>
<HEAD>
<TITLE>標題放在這</TITLE>
</HEAD>
<BODY>
表單頁面放在這
</BODY>
</HTML>
在包含表單的HTML頁面中可以使用任何HTML標簽。基本的表單使用FROM標簽來說明。該標簽中METHOD屬性接收GET或POST兩個值中的一個。ACTION屬性子明PHP腳本的url,該腳本可以收集通過表單收集的數據,可以是絕對路徑或者相對路徑。
<FORM METHOD="method" ACTION="url">
中間可以放置表單控件
</FORM>
兩個常用的基本控件:文本框和提交按鈕。
文本框:允許用戶鍵入信息以發送給PHP腳本。NAME屬性為文本提供名稱,PHP腳本可以通過名稱準確訪問其內容,因此它應該是唯一的且符合PHP變量命名規則(但不需要$符號),單標簽。VALUE屬性指明出現在提交按鈕上面的標題。創建方式如下:
<INPUT TYPE="TEXT" NAME="text">
提交按鈕:允許用戶將一個表單的內容發送到服務器,一個HTML表單對應應該有一個提交按鈕。
示例:一個完整的HTML表單。
<HTML>
<HEAD>
<TITLE>標題</TITLE>
</HEAD>
<BODY>
<FORM METHOD="POST" ACTION="phpinfo.php">
<INPUT TYPE="TEXT" NAME="user_name">
<BR/>
<BR/>
<INPUT TYPE="TEXT" NAME="user_email">
<BR/>
<BR/>
<INPUT TYPE="SUBMIT" VALUE="Send the Data">
</FORM>
</BODY>
</HTML>
可以在一個HTML頁面中包含多個表單,注意下一個表單的FORM開始之前需要結束前一個FORM表單。
<HTML>
<HEAD>
<TITLE>標題</TITLE>
</HEAD>
<BODY>
<FORM METHOD="POST" ACTION="phpinfo.php">
<INPUT TYPE="TEXT" NAME="user_name">
<BR/>
<BR/>
<INPUT TYPE="TEXT" NAME="user_email">
<BR/>
<BR/>
<INPUT TYPE="SUBMIT" VALUE="Send the Data">
<BR/>
<BR/>
</FORM>
<FORM METHOD="POST" NAME="phpinfo.php">
<INPUT TYPE="TEXT" NAME="user_name1">
<BR/>
<BR/>
<INPUT TYPE="TEXT" NAME="user_email1">
<BR/>
<BR/>
<INPUT TYPE="SUBMIT" VALUE="Send the Data1">
</FORM>
</BODY>
</HTML>
文本框的屬性中,TYPE和NAME是必須的,其余是可選屬性。SIZE屬性用于設置文本框的可視大小;MAXLENGTH指明用戶鍵入字符的最大長度;VALUE給出了一個最初顯示在文本框中的值。
<input type="text" name="" size="" maxlength="" value="">
文本區域可以輸入多行文本。NAME和ROWS屬性是必須的。ROWS屬性表明了文本區域內可以看到的文本行數,充滿時會滾動。COLS屬性指明可見文本列數與行數類似。WRAP屬性指明文本區域內單詞換行的方式,可以指定如下值。該標簽為雙標簽。
值 | 說明 |
off | 禁止單詞換行但用戶可以輸入換行符強制換行 |
virtual/soft | 各行顯示為換行,但是換行并沒有被發送到服務器 |
physica/hard | 啟用了單詞換行 |
<inputarea name="" rows="" cols="" wrap="">
創建密碼框的語法與文本框相同,但要將TYPE屬性指定為PASSWORD而不是TYPE。
<input type="password" name="" size="" maxlength="" value="">
取兩個值中的一個,即二選一。TYPE屬性是必須的,checked屬性出現,該復選框默認情況會被選定。value屬性指定復選框被選定情況下被發送到服務器的值,默認發送on值。法如下:
<input type="checkbox" name="" checked value="">
語法與復選框屬性含義相同,但是TYPE屬性的值必須是RADIO,NAME屬性是必須的。
<input type="radio" name="" checked value="">
用戶可以選擇一個或者多個選項,它是一個滾動菜單。
<select name="" multipile size="">options go here</select>
name屬性是必須的,multipile屬性指明用戶可以通過按下crtl鍵并單擊多個選項來選擇它們
列表框的單選行為可作為單選按鈕。
<option selected value="text"></options>
<input type="hidden" name="text"value="">
<input type="FILE" name="name" accept="time" value="text">
其中type屬性是必須的。格式通過使用MIME碼指定。常用的格式如下:
超文本標記語言文本 .html,.html text/html
普通文本 :txt text/plain
word文檔:application/msword
RTF文本 :rtf application/rtf
GIF圖形 :gif image/gif
JPEG圖形 :jpeg,
jpg: image/jpeg
au聲音文件:au audio/basic
MIDI音樂文件 :mid,.midi audio/midi,audio/x-midi
RealAudio音樂文件 .ra, .ram audio/x-pn-realaudio
MPEG文件 .mpg,.mpeg video/mpeg
AVI文件 .avi video/x-msvideo
GZIP文件 .gz application/x-gzip
壓縮文件.rar application/octet-stream
壓縮文件.zip application/x-zip-compressed
TAR文件 .tar application/x-tar
<input type="image" src="url" name="text" align="align">
<input type="reset" value="text">
TML DOM INPUT FILE 大文件上傳源代碼,B/S大附件上傳,支持斷點續傳,VUE處理文件流實現上傳下載,VUE 上傳大型文件插件(VUE上傳視頻插件)
之前在網上也搜索過相關的資料,在論壇里面也與網絡交流過,但是給出的方案都不太令人滿意。一方面論壇里面的網頁都沒有真實的項目經驗。幾乎大部分的網頁都是在紙上談兵,很多問題完全是憑想象在回答。
后端PHP5,PHP6,PHP7,PHP8,ThinkPHP,
服務器支持Linux,Windows,macOS,CentOS,中標麒麟,銀河麒麟,統信,龍芯,華為鯤鵬,
數據庫支持MySQL,達夢數據庫,人大金倉
需要提供前端源碼,后端源碼,控件源碼
需要提供7*24小時技術支持,長期技術支持,長期維護服務
需要提供手機,QQ,微信,企業微信,電子郵箱等聯系方式
需要支持包含IE在內的全部瀏覽器
終端需要支持Windows,macOS,Linux,信創國產化環境,中標麒麟,銀河麒麟,統信UOS,龍芯,華為
功能需要支持10G,50G,100G大文件上傳和斷點續傳,刷新續傳,重啟續傳
文件夾包含1W,10W,100W個文件和層級結構
支持超大文件分片,分段,分塊,分割上傳下載,斷點續傳
支持文件夾上傳,下載斷點續傳,支持文件夾層級結構,層級結構信息保存到數據庫,下載的時候同樣保留層級結構
支持加密上傳,下載加密,端到端加密,國密SM4加密算法,數據加密傳輸,傳輸過程中要保證數據是加密的。1.下載示例
https://gitee.com/xproer/up6-vue-cli
將up6組件復制到項目中
示例中已經包含此目錄
1.引入up6組件
2.配置接口地址
接口地址分別對應:文件初始化,文件數據上傳,文件進度,文件上傳完畢,文件刪除,文件夾初始化,文件夾刪除,文件列表
參考:http://www.ncmem.com/doc/view.aspx?id=e1f49f3e1d4742e19135e00bd41fa3de
3.處理事件
啟動測試
啟動成功
效果
數據庫
源碼工程文檔: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
*請認真填寫需求信息,我們會在24小時內與您取得聯系。