分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 软件开发

PHP-上传文件

发布时间:2023-09-06 01:46责任编辑:郭大石关键词:PHP

php.ini中和和文件上传相关的选项

指令名默认值描述
file_uploadsON服务器上的php脚本是否可以接受文件上传
max_execution_time30PHP脚本在注册一个致命错误之前可以执行的最长时间,以秒为单位
memory_limit128MB设置PHP脚本可以分配到的最大内存,以MB为单位,这样可以防止失控的脚本独占服务器内存
upload_max_filesize2MB设置上传文件的大小的最大值,以MB为单位。此指令必须小于post_max_size
upload_tmp_dirNULL设置文件上传后存放的临时目录
post_max_size8M通过POST方式发送信息的大小,以MB为单位

用来上传文件的php脚本

<form enctype="multipart/form-data" action="upload.php" method="post"><input type="hidden" name="MAX_FILE_SIZE" value="2000000" />上传文件:<input type="file" name="userfile" /><input type="submit" value="上传" /></form>

 POST方式发送文件到upload.php进行处理

选择本地的一个shell.jpg文件

upload.php中的内容

<?php //打印文件信息的数组print_r($_FILES);?>

 点击上传

全局数组$_FILES中的元素说明

数组描述
$_FILES[‘userfile‘][‘name‘]上传的文件的文件名
$_FILES[‘userfile‘][‘type‘]上传的文件的文件类型
$_FILES[‘userfile‘][‘tmp_name‘]上传的文件临时存放地址
$_FILES[‘userfile‘][‘error‘]上传的文件的错误类型
$_FILES[‘userfile‘][‘size‘]上传的文件的大小

对上传的文件进行过滤和处理

<?php //允许上传的文件类型$allow_type = [‘image/jpeg‘, ‘image/png‘, ‘image/pjpeg‘, ‘image/x-png‘, ‘image/gif‘];//判断上传的类型是否被允许if (!in_array($_FILES[‘userfile‘][‘type‘], $allow_type)){echo "<script>alert(‘只允许上传jpg/png/gif类型的图片‘)</script>";exit;}//判断上传过程中是否发生错误if ($_FILES[‘userfile‘][‘error‘] != 0){switch ($_FILES[‘userfile‘][‘error‘]) {case 1:echo "<script>alert(‘上传文件的大小超过了php.ini中upload_max_filesize的约定值‘)</script>";break;case 2:echo "<script>alert(‘上传文件的大小超过了上传表单max_file_size规定的最大值‘)</script>";break;case 3:echo "<script>alert(‘文件只被部分上传‘)</script>";break;case 4:echo "<script>alert(‘文件没有被上传‘)</script>";break;}exit;}//用来再次判断上传文件的大小define(‘MAX_SIZE‘, 2000000);if ($_FILES[‘userfile‘][‘size‘] > MAX_SIZE){echo "<script>alert(‘上传的文件大小不能超过2M‘)</script>";exit;}//判断目录是否存在define(‘URL‘, dirname(__FILE__).‘\files‘);if (!is_dir(URL)) {mkdir(URL);}//把文件从临时文件夹移动到指定文件夹if (is_uploaded_file($_FILES[‘userfile‘][‘tmp_name‘])){if (!@move_uploaded_file($_FILES[‘userfile‘][‘tmp_name‘], URL.‘/‘.$_FILES[‘userfile‘][‘name‘])){echo "<script>alert(‘移动失败‘);history.back();</script>";exit;}}else {echo "<script>alert(‘临时文件夹找不到文件‘);history.back();</script>";exit;}//经过以上过滤,符合条件的文件上传成功,执行以下语句echo "<script>alert(‘文件上传成功‘);location.href=‘url.php?url=files/".$_FILES[‘userfile‘][‘name‘]."‘".";</script>";?>

 上传文件

然后跳转到http://127.0.0.1/upload/url.php?url=files/shell.jpg

PHP-上传文件

原文地址:https://www.cnblogs.com/sch01ar/p/8592013.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved