批改状态:未批改
老师批语:
<?php /** * 文件或目录相关的系统常量 */ echo __FILE__ ,'<br>'; //1.获取文件名 带扩展名 echo '文件名', basename(__FILE__),'<br>'; echo '文件名', filesize(__FILE__),'<br>'; //2.获取目录名 echo '目录名:', dirname(__FILE__),'<br>'; //php5.3+,直接使用魔术常量__DIR__ echo __DIR__,'<br><hr><pre>'; //3.pathinfo(),将文件名,目录名,扩展名解析到一个数组中 $pathinfo = pathinfo(__FILE__); print_r($pathinfo); echo '目录名:',$pathinfo['dirname'],'<br>'; echo '文件名:',$pathinfo['basename'],'<br>'; echo '扩展名:',$pathinfo['extension'],'<br><hr>'; //DIRECTORY_SEPARATOR 根据系统平台自动变化 返回正/反\斜线 正斜杠,符号是"/";反斜杠,符号是"\"。 //正斜杠,符号是"/";反斜杠,符号是"\"。 // "../ " 表示当前目录的上级目录,即当前的父目录; // "/" 表示网站的根目录; echo DIRECTORY_SEPARATOR; $path = dirname(__FILE__).DIRECTORY_SEPARATOR.basename(__FILE__); echo $path;
点击 "运行实例" 按钮查看在线实例
<?php /** * 文件或目录相关的系统常量 */ echo __FILE__ ,'<br>'; //1.获取文件名 带扩展名 echo '文件名', basename(__FILE__),'<br>'; echo '文件名', filesize(__FILE__),'<br>'; //2.获取目录名 echo '目录名:', dirname(__FILE__),'<br>'; //php5.3+,直接使用魔术常量__DIR__ echo __DIR__,'<br><hr><pre>'; //3.pathinfo(),将文件名,目录名,扩展名解析到一个数组中 $pathinfo = pathinfo(__FILE__); print_r($pathinfo); echo '目录名:',$pathinfo['dirname'],'<br>'; echo '文件名:',$pathinfo['basename'],'<br>'; echo '扩展名:',$pathinfo['extension'],'<br><hr>'; //DIRECTORY_SEPARATOR 根据系统平台自动变化 返回正/反\斜线 正斜杠,符号是"/";反斜杠,符号是"\"。 //正斜杠,符号是"/";反斜杠,符号是"\"。 // "../ " 表示当前目录的上级目录,即当前的父目录; // "/" 表示网站的根目录; echo DIRECTORY_SEPARATOR; $path = dirname(__FILE__).DIRECTORY_SEPARATOR.basename(__FILE__); echo $path;
点击 "运行实例" 按钮查看在线实例
<!--
* 系统变量:$_FILES是一个二维数组,一维是当前的文件上传控件的名称,也就是name属性值
* 二维是它的当前属性,最重要有以下几个:
*$_FILES['file']['name']:文件原始文件名称
* $_FILES['file']['type']:文件类型
* $_FILES['file']['size']:上传文件大小
* $_FILES['file']['tmp_name']:服务器上的临时文件夹
* $_FILES['file']['error']:上传错误代码
*/
//$_SERVER['PHP_SELF']:当前PHP脚本
//enctype="multipart/form-data":允许通过表单上传文件
//method:请求类型必需是POST
处理脚本的三种语法:
1. 最严格的写法:$_SERVER['PHP_SELF']:建议实际工作中用htmlspecialchars()进行防跨域攻击处理
2. 最死板的写法,直接写上当前文件名: demo6.php
3. 最懒的写法: 空,啥与不写,默认就是提交到当前页面的php脚本处理
-->
<form action="<?php echo htmlspecialchars($_SERVER['PHP_SEIF']); ?>" method="POST" enctype="multipart/form-data">
<fieldset>
<legend align="center">文件上传</legend>
<strong>选择文件:</strong><input type="file" name="upload">
</fieldset>
<button style="border-radius: 5px; width: 80px;height:25px; margin-top: 8px;box-shadow: 2px 2px 2px;background-color:#efefef;" type="submit" name="submit">上传</button>
</form>
<?php
//检测类型是不是POST
if($_SERVER['REQUEST_METHOD'] == 'POST'){
if(isset($_FILES['upload']['type']) && !empty($_FILES['upload']['name'])){
// 允许上传类型
$uptype = ['image/jpg','image/jpeg','image/png'];
if(in_array($_FILES['upload']['type'], $uptype)){
// 将文件移动到临时目录
if(move_uploaded_file($_FILES['upload']['tmp_name'],"upload/{$_FILES['upload']['name']}")){
//upload success
echo "<script>alert('上传成功')</script>";
}
}else{
echo "<script>alert('只能上传图片')</script>";
}
}
//对上传文件错误处理
if($_FILES['upload']['error'] > 0){
//echo '<p>错误原因是:<strong>';
switch ($_FILES['upload']['error']){
case 1:
echo '文件超过php.ini配置大小';
break;
case 2:
echo '文件超过表单中常量设置大小';
break;
case 3:
echo '仅有部分文件被上传';
break;
case 4:
echo "<script> alert('没有文件上传')</script>";
break;
default:
echo '未知错误';
break;
}
echo '</strong></p>';
//删除临时文件
if(file_exists($_FILES['upload']['tmp_name']) && is_file($_FILES['upload']['tmp_name'])){
unlink($_FILES['upload']['tmp_name']);
}
}
}else{
echo '11';
}
?>点击 "运行实例" 按钮查看在线实例
总结:
对文件和目录的建立、修改、删除操作。
使用表单制作一个简单的文件上传页面。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号