服务端php之文件上传
2019-05-08 07:30:44来源:博客园 阅读 ()
知识点
- echo $_SERVER['PHP_SELF']; 自动获取当前文件的路劲(即提交地址为当前页面)
- 当一个表单有文件域(即文件上传)的时候,method(提交方式)要设置post,这样更加安全,enctype这个属性为编码类型,固定格式为 multipart/form-data
- 当文件上传成功后,系统会在服务端开辟一个临时目录来存放上传的文件,而上传之后,会立马消除这个目录
- UPLOAD_ERR_OK(这是一个记号,其值为0时)
- PHP 中设置全局变量的两种方式:
- (1) global $message;
- (2) $GLOBALS['message']
$avator['error']分析
- 其值为0(UPLOAD_ERR_OK)时:表示文件上传成功
- 其值为1(UPLOAD_ERR_INT_SIZE):表示文件超过了 php.ini 文档中的 upload_max_filesize (服务端支持的单个文件上传的大小)的值。当出现这个情况时,只要根据情况增大这个值即可
- 其值为2(UPLOAD_ERR_FORM_SIZE):表示上传的文件超过了HTML表单中MAX_FILE_SIZE选项指定的值
- 其值为3(UPLOAD_ERR_PARTIAL):表示只有部分被上传
- 其值为4(UPLOAD_ERR_NO_FILE):表示没有文件被上传
错误分析
- Warning: POST Content-Length of 17545049 bytes exceeds the limit of 8388608 bytes in Unknown on line 0
- 当出现上面这句警告的时候,表示超过了服务端所支持的最大的请求体的体积,只需再 php.ini 文档中增大 post_max_size 的大小即可
测试代码
html
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" enctype="multipart/form-data"> <input type="file" name="avator"> <button type="submit">上传</button> <!-- 当 $message 有值的时候显示 --> <?php if (isset($message)): ?> <p style="color: red;"><?php echo $message; ?></p> <?php endif ?> </form>
php
<?php function upload () { if (empty($_FILES['avator'])) { // $message 要设置为全局变量 $GLOBALS['message'] = '亲,您传的是什么啊!'; return; } $avator = $_FILES['avator']; // $avator => array(5) { // ["name"]=> // string(9) "pic02.jpg" // ["type"]=> // string(10) "image/jpeg" // ["tmp_name"]=> // string(26) "C:\Windows\Temp\phpBBB.tmp" //临时目录 // ["error"]=> // int(0) // ["size"]=> // int(560586) // } echo $avator['error']; // // 上传失败时,$avator['error'] = 4 // echo $avator['error']; // UPLOAD_ERR_OK === 0 if ($avator['error'] !== UPLOAD_ERR_OK) { // 服务端没有接收到上传的文件 $GLOBALS['message'] = '上传失败'; return; } // 接收到了文件 // 将文件从临时目录移动到网站根目录 $source_file = $avator["tmp_name"]; //源文件 // 移动的目录路劲中文件夹必须先存在,否则报错 $target_file = 'uploadFile/' . $avator["name"];//目标放在哪里 $moved = move_uploaded_file($source_file, $target_file); if (!$moved) { $GLOBALS['message'] = '上传失败'; return; } // 移动成功(上传成功) echo '亲,上传成功了哟!'; } if ($_SERVER['REQUEST_METHOD'] === 'POST') { upload(); } ?>
原文链接:https://www.cnblogs.com/duxiu-fang/p/10824955.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
下一篇:Set学习笔记
- PHP写UltraEdit插件脚本实现方法 2020-03-29
- php 带逗号千位符数字的处理方法 2020-03-28
- PHP三元运算符的结合性介绍 2020-03-28
- PHP静态延迟绑定和普通静态效率的对比 2020-03-28
- 基于php流程控制语句和循环控制语句 2020-03-28
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash