PHP上传媒体文件到服务器指定目录

2019年4月17日 0 条评论 190 次阅读 0 人点赞

首先声明:本次开发的环境是在Windows下使用集成环境PHPstudy进行开发


第一步:我们先创建一个表单上传文件,代码如下:

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>PHP上传</title>
</head>
<body>
<form method="post" action="check.php" enctype="multipart/form-data">
	<input type="file" name="myFile">
	<input type="submit" value="提交">
</form>
</body>
</html>

注意:在form表单中enctype="mulitipart/form-data"属性为上传文件必不可少,传输方式必须使用post进行传输。


第二步:我们需要将php当中的配置文件PHP.ini中的

post_max_size

upload_max_filesize

设置为大于你上传文件的大小,具体很多配置问题请自行度娘,此次文章先说这两个,如若有问题,请在博客下放留言!


第三步:我们创建check.php进行接收表单数据

<?php
    //设置中文字符集,防止中文乱码
    header('content-type:text/html;charset=utf-8');

    //将post传输过来的文件数组赋值给一个变量
	$file=$_FILES['myFile'];
	
	//将数组中的变量信息单个取出	
	$name=$file['name'];
	
	//将数组中的变量信息单个取出	
	$local=$file['tmp_name'];

    //将$name中的字符串打散成数组,以.号为分隔符进行拆分,取其后缀
	$explode=explode(".",$name);
	
	//获取当前时间戳
	$time=time();
	
	//定义一个变量为服务器的存储路径,并且使用时间戳和后缀进行命名
	$newlocal="uploads/".$time.".".$explode[1];
	
	//将文件移动我们前面定义的指定目录中,并将值赋给$move变量,返回的是一个bool类型的值
	$move=move_uploaded_file($local,$newlocal);
	
	//做一个小判断,根据bool中返回的值,判断是否上传成功
	if ($move) {
		echo "上传文件并且移动成功!";
	}else{
		echo "上传文件或移动文件失败!";
	}

此处重点讲解的知识点如下:

1、定义路径的时候尽量去更改名称,因为用户上传的名称并不规范,有时候用户上传的文件名称太长会导致php中读取不出来。

2、move_uploaded_file();函数中,不支持utf-8的格式,所以再上传文件的时候,如若没有做重命名判断的时候,会中文乱码,其实也可以在移动之前先将上传文件的名称更改为gb2312编码,具体怎么转换请咨询度娘!


总结:这是一个简单的php上传程序,这其中并没有做太多的判断,在现实开发中我们需要将上传的文件在PHP中进行限制和判断,切记,请勿在html前端中进行判断上传文件类型,在此处给大家展现一个成功结果,如有疑问在博客下放留言,并留下自己的邮箱,博主给予解答!

梁桂锋

来自西京学院大三的小开发者。

文章评论(0)