整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

PHP文件上传

PHP文件上传

文件系统处理的作用:

1. 所有的项目离不开文件处理

2. 可以用文件长时间保存数据

3. 建立缓存, 服务器中文件操作

文件处理

1. 文件类型

以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() 的别名


2. 文件的属性

file_exists();

filesize();

is_readable();

is_writeable();

filectime();

filemtime();

fileactime();

stat();

3. 和文件路径相关的函数

相对路径:相对于当前目录的上级和下级目录

. 当前目录

.. 上一级目录

./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)


4. 文件的操作相关的函数

创建文件 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 -- 取得文件的所有者


5. 文件的打开与关闭(读文件中的内容, 向文件中写内容)

读取文件中的内容

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

6. 文件内部移动指针

ftell($file) //返回当前文件针的位置

fseek($file, 10);

fread();

rewind();


7. 文件的锁定一些机制处理


目录的处理

opendir()

readdir()

closedir()

rewinddir()

创建目录

mkdir(); //创建一个空目录

删除目录

rmdir(); //只可以删除空目录

多数PHP程序都使用HTML表单从用户那里获取数据并计算结果。

HTML表单的一些基本原则

  • 选择适合于收集的数据类型和提供交互方式的控件。
  • 清楚标记每一个控件,这样用户就可以理解其功能。
  • 尽可能将标签对齐。将控件的左边缘对齐。
  • 将相关的标签分组,并且通过设计中使用空白将每一个分组分开。
  • 表单上的控件顺序应该类似于用户操作他们的顺序。

创建基本HTML表单

首先创造一个基本的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="">
  • 实现上传文件的HTML表单
<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