PHP文件上传

来源:互联网 发布:淘宝最新刷销量方法 编辑:程序博客网 时间:2024/05/22 10:39

7/24/2017 9:12:17 PM

PHP文件上传

前端使用form表单提交,html代码如下

<h2>文件提交</h2><form action="api/form_file.php" method="post" accept-charset="utf-8" enctype="multipart/form-data">    <!-- hidden -->    <input type="hidden" name="MAX_FILE_SIZE" value="5000000">    <!-- file -->    <label>file:<input type="file" name="file_name" value="file_value"></label>    <!-- reset -->    <input type="reset">    <!-- submit -->    <input type="submit"></form>

需要注意其中的input hidden是对用户隐藏的,作用是传输文件最大值,方便在前端或者PHP服务器滤掉过大的文件。

再对form的几个属性说明一下:

action—— 表单提交地址
method—— 数据传输方式
accept-charset—— 编码格式
enctype—— 规定内容格式,此处的”multipart/form-data”为二进制。

后端先使用$_FILES接收文件,接收完毕再进行下一步处理。$_FILES就是PHP针对文件上传而设定的规定的全局变量。$_FILES以二维数组格式存储,一维储存input name,二维储存5个键值对,简介如下:

name—— 文件名称
type—— 文件类型
tmp_name—— 文件在服务器中的临时保存路径及名称,请求结束后会被删除
error—— 错位代号
size—— 文件大小

后台接收代码如下;

print_r($_POST);echo "<br>";print_r($_FILES);echo "<br>";echo "name : " . $_FILES["file_name"]["name"] . "<br>";echo "type : " . $_FILES["file_name"]["type"] . "<br>";echo "tmp_name : " . $_FILES["file_name"]["tmp_name"] . "<br>";echo "error : " . $_FILES["file_name"]["error"] . "<br>";echo "size : " . $_FILES["file_name"]["size"] . "<br>";

新建一个txt文件“newfile.txt”做试验。结果如下:

this is form_file.phpArray ( [MAX_FILE_SIZE] => 5000000 ) Array ( [file_name] => Array ( [name] => newfile.txt [type] => text/plain [tmp_name] => /tmp/phpqVT1nu [error] => 0 [size] => 36 ) ) name : newfile.txttype : text/plaintmp_name : /tmp/phpqVT1nuerror : 0size : 36

试验结束,到这一步文件已经从客户端传至web服务器中,但只能做短时间保存,接下来要做的就是对web服务器中的文件进行处理,涉及到PHP文件的读写等操作。

原创粉丝点击