文件系统处理的作用:
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小时内与您取得联系。