详细解析 php 文件上传机理及form表单提交 | 二大人
Width Mode: Auto Font size: Small | Normal | Large

php 文件上传机理

文件上传机理简单,通常的做法是通过<form>表单以 enctype=”multipart/form-data” 的方式将附件数据POST给服务器,然后在后台用$_FIFES变量获取关于附件的名称、临时保存未知、大小、错误信息等数据,此时利用php将临时保存的文件利用copy或者rename命令将文件存到指定位置即可。

ajax上传通常采用的方式也是构建一个iframe对象的form,然后post给后台,不过现在html5已经可以实现直接构建multipart/form-data数据流进行传输,即实现拖动上传。

form的文件上传input中一定要有name属性,以作为post数据的索引, 在上传时可以直接用action指定数据发送位置,还可以设置 onsubmit=”return chkForm();” 利用JS进行初步简单数据检测,甚至可以临时修改action,通常一个type=”submit”的button 响应单击事件后就能直接发送form数据。

当数据POST到后台后,通常PHP的处理脚本会执行如下几步:

  1. 检测POST过来的$_FILES是为空,还是单文件或者多文件。
  2. 如果是单文件,先构建一个关于时间的随即名作为该文件的保存名字,也就是最新的路径,然后判断服务器确实有临时文件,并且有文件名等数据,然后把文件从临时路径move_uploaded_file到新的路径,用新的名称保存起来。同时建立一个数组,存起这些数据。
  3. 如果是多文件,只需把单文件的遍历一遍即可。

文件上传的机理仅仅如此。

你可能还会喜欢


  1. 还没有人评论过,来坐沙发吧.

  1. 还没有引用