您的位置:首页 > 编程语言 > PHP开发

初学者-php处理表单上传文件

2016-08-17 10:28 573 查看
使用表单上传文件的时候,表单的提交方式必须是post提交方式,上传文件的input控件type属性值应为file,最重要的是form标签需要加一个enctype="multipart/form-data"的属性。

html代码:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>上传</title>
</head>
<body>
<form action="handle.php" method="post" enctype="multipart/form-data">
<input type="file" name="file1">
<br/>
<input type="submit" value="上传">
</form>
</body>
</html>
php代码:

<?php
/*
*用$_FILES接收通过表单上传的文件数据
*$_FILES['file1']中的file1对应表单中上传文件的input标签中的name值
*$_FILES['file1']返回的是一个数组:
$_FILES['file1']['name'] 显示上传文件的原名称。
$_FILES['file1']['type'] 文件的 MIME 类型,例如"image/gif"、"image/png"。
$_FILES['file1']['size'] 已上传文件的大小,单位为字节。
$_FILES['file1']['tmp_name'] 储存的临时文件名和临时储存的路径。
$_FILES['file1']['error'] 和该文件上传相关的错误代码。
=0; 没有错误发生,文件上传成功。
=1; 上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值。
=2; 上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值。
=3; 文件只有部分被上传。
=4; 没有文件被上传。
=5; 上传文件大小为0.
*/
$file=$_FILES['file1'];

//给文件重命名,尽量不要起中文名字,如下以时间戳+随机数重命名
$filename=time().rand(0,1000);

//获取文件的后缀,pathinfo()会以数组的形式返回一个文件的路径信息,其中extension元素则是文件的后缀名
$ext=pathinfo($_FILES['file1']['name'])['extension'];

//最终文件名为
$filename=$filename.'.'.$ext;

//设置文件上传到服务器后存放的位置,move_uploaded_file()会将文件移动到新位置,第一个参数是要移动的文件,第二个参数是移动到哪里。我在这里是放到和本php文件同一目录下,注意需要将新的文件名连接进去。
if (move_uploaded_file($file['tmp_name'], './'.$filename)) {
echo "success";
} else{
echo "error";
}
?>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  php 表单 上传文件