核心!用php实现把文件上传到服务器

版权声明:转载请附上文章地址 https://blog.csdn.net/weixin_38134491/article/details/86679012
<?php
date_default_timezone_set('Asia/Seoul');
header('Content-type:text/html;charset=utf-8');

/* isset()函数用于判断变量是否存在
 */
if (isset($_POST['submit'])){
    
    /* 判断文件是否通过HTTP POST上传 
     * $_FILES['file]['tmp_name']指的是上传后的文件名
     */
    if(is_uploaded_file($_FILES['myfile']['tmp_name'])){   
        
        $arr=pathinfo($_FILES['myfile']['name']);
        
        /* 获取当前时间作为文件名 */
        $newName=date('YmdGis').rand(1000,9999);
        
        /* 'uploads/'.$newName.'.'.$arr['extension'] */
        if(move_uploaded_file($_FILES['myfile']['tmp_name'],"uploads/{$newName}.{$arr['extension']}")){
            echo '恭喜你,上传成功!';
        }
        else {
            echo '对比起,移动文件失败!';
        }
    }
    
    /* 非HTTP POST方式上传 */
    else {
        exit('可能会被攻击,请你安全地文件上传!');
    }
}

?>

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<title></title>
</head>
<body>
 	<form action="" method="post" enctype="multipart/form-data">
 		<input type="file" name="myfile"/>
 	
 		<input type="submit" name="submit" value="开始上传"/>
 	</form>	
</body>
</html>

上传上来的文件默认是放在一个临时目录里,我们要把这些文件移动到我们需要的地方

form表单设置:

  • method设置成 post
  • enctype设置成 form-data
  • form表单中设置隐藏类型的input,name值设置成MAX_FILE。VALUE值设置成最大上传文件大小(字节)
<form action="" method="post" enctype="multipart/form-data">
	<input type="file" name="myfile"/>
	<input type="text" name="username" />
	<input type="text" name="sex" />
	<input type="text" name="address" />
	<input type="submit" name="submit" value="开始上传"/>
</form>	

在服务器端用php处理上传文件

配置php.ini文件:

  • file_uploads:on  判断服务器上的脚本是否可以接受http文件上传
  • memory_limit:8M   设置脚本可以分配的最大内存,防止失控的脚本独占服务器内存
  • upload_max_filesize:2M    限制上传文件的最大值,值必须小于post_max_size值
  • post_max_size:8M   限制通过post方法可以接收的信息最大量
  • upload_tmp_dir:E:/wamp/tmp   上传文件临时存放的路径,可以是一个绝对路径

 $_FILES 多维数组,用于存储各种与上传有关的信息

  • $_FILES['file]['name']   客户端机器文件的原名称,包含扩展名
  • $_FILES['file]['size']     已上传的文件大小(字节)
  • $_FILES['file]['tmp_name']   文件上传后在服务器端存储的临时文件名
  • $_FILES['file]['error']   文件上传时产生的错误,0 表示没有错误,文件上传成功。1表示文件大小超出了upload_max_filesize大小。2表示文件大小超出了html表单中MAX_FILE_SIZE的值。3表示文件只有部分被上传。4表示没有上传任何文件
  • $_FILES['file]['type']   获取上传文件的MIME类型,MIME规定了各种文件格式的类型,每种MIME都是由/分隔的主类型和子类型组成

php文件上传处理函数(用于上传文件的后续处理)

  • is_uploaded_file( ) 判断指定的文件是否通过HTTP POST上传的
  • move_uploaded_file( ) 文件上传后首先会存储在服务器的临时目录中,可使用该函数使文件移动到新位置

猜你喜欢

转载自blog.csdn.net/weixin_38134491/article/details/86679012
今日推荐