1 文件的上传
首先,写一个HTML 的表单,用于上传文件,命名为form.html。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>cnm</title>
</head>
<body>
<form method="post" action="saonima.php" enctype="multipart/form-data">
<input type="hidden" name="MaxFileSize" value="1000000">
文件:<input type="file" name="file"/>
<input type="submit" value="submit"/>
</form>
</body>
</html>
*标签中的 enctype = “multipart/form-data” 这个代码的作用是不对字符编码。在使用包含文件上传表单的控件中必须使用该值。
*form标签下的第一个input标签type为hidden,是隐藏域,写在上传文件的表单之前用于控制上传文件的大小。
2 超级全局变量$_FILES
返回一个数组,列表如下:
$_FILES[‘file’][‘tem_name’] 文件在服务器存放的临时地址。
$_FILES[‘file’][‘name’] 文件名。
$_FILES[‘file’][‘size’] 文件的大小,单位是B。
$_FILES[‘file’][‘type’] 上传文件的类型
$_FILES[‘file’][‘error’] 错误的类型,0:表示没有发生错误。
1:表示上载文件的大小超出了约定值。
2:表示上载文件大小超出了 HTML 表单的 MAX_FILE_SIZE 元素所指定的最大值。
3:表示文件只上传了一半。
4:表示没有上传任何文件。
3 文件的接收
is_uploaded_file()判断文件是否是通过 HTTP POST 上传的,里面的参数是文件名用超级全局变量$_FILES来获取。返回值类型为bool型。
<?php
if(is_uploaded_file($_FILES["file"]["tmp_name"])) {
echo '上传成功';
}
else {
echo '上传失败';
}
4 上传文件后的移动
move_uploaded_file(),返回值为bool型。
bool move_uploaded_file ( string $filename , string $destination )
第一个参数是上传的合法文件地址,第二个参数是要存放的地址。
<?php
if(is_uploaded_file($_FILES["file"]["tmp_name"])) {
echo'上传成功,移动完毕';
move_uploaded_file($_FILES['file']['tmp_name'],$_FILES['file']['name']);
}
else {
echo '上传失败';
}
如例,默认的保存目录是php文件的根目录,可以在该文件下再创建文件夹保存。
如果想将文件保存到当前目录下的upload文件夹(手动新建一个就行)可以修改move_uploaded_files()中第二个参数,如下所示:
'upload/'.$_FILES['file']['name']