PHP文件上传

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.php
Array ( [MAX_FILE_SIZE] => 5000000 ) 
Array ( [file_name] => Array ( [name] => newfile.txt [type] => text/plain [tmp_name] => /tmp/phpqVT1nu [error] => 0 [size] => 36 ) ) 
name : newfile.txt
type : text/plain
tmp_name : /tmp/phpqVT1nu
error : 0
size : 36

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值