form表单 enctype="multipart/form-data"
php后台
$_FILES
$_FILES['file']['error']=?
0:上传文件的大小超出了PHP配置文件中upload_max_filesize的值
2:上传文件的大小超出了HTML表单中MAX_FILE_SIZE的值
3:只有部分上传
4:没有选择上传文件
HTML代码如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<form name="form1" action="upload.php" method="post" enctype="multipart/form-data">
<input type="hidden" name="MAX_FILE_SIZE" value="1024000">
<input type="file" name="file">
<input type="submit" value="上传">
</form>
</body>
</html>
PHP代码如下:
<?php
//上传文件
// print_r($_FILES);
if(!isset($_FILES['files'])){
die('非法访问');
}
if($_FILES['file']['error']){
die('上传文件失败');
}
print_r($_FILES['file']);
$tmp = $_FILES['file']['tmp_name'];
$filename = $_FILES['file']['name'];
$filename = mb_convert_encoding($filename,'gbk','utf-8');
$ret = move_uploaded_file($tmp,$filename);
if(true === $ret){
echo '上传成功';
}else{
echo '上传失败';
}
move_uploaded_file — 将上传的文件移动到新位置
语法:bool move_uploaded_file ( string $filename
, string $destination
)
返回值:
成功时返回 TRUE
。
如果 filename
不是合法的上传文件,不会出现任何操作, move_uploaded_file() 将返回 FALSE
。
如果 filename
是合法的上传文件,但出于某些原因无法移动,不会出现任何操作, move_uploaded_file() 将返回 FALSE
。此外还会发出一条警告。
mb_convert_encoding — 转换字符的编码
语法:string mb_convert_encoding ( string $str
, string $to_encoding
[, mixed $from_encoding
] )
将 string 类型 str
的字符编码从可选的 from_encoding
转换到 to_encoding
。