我爱帮助网-手册QQ交流群

Nas交流与矿渣群(unraid 群晖 猫盘 蜗牛等):580680114         物联网/智能家居群:518812757             帮助教程:手册大全

软件使用与建站群:1057308983      虚拟化交流群:13448651

0

PHP实现简单的文件上传功能

在网站开发中。上传功能应该是必不可少了。在使用PHP时,如何编写上传的代码呢?


前台HTML端代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>文件上传</title>
</head>
<body>
<form action="file_updata.php" method="post" enctype="multipart/form-data">
    <label for="files">文件上传</label>
    <input type="file" id="files" name="file">
    <br/>
    <input type="submit" name="submits" value="提交">
</form>
 
</body>
</html>



后台PHP端代码:

header("Content-type: text/html; charset=utf-8");
$file = $_FILES["file"];
if($file["error"]>0){
    echo "错误:".$file["error"];
}else{
    $name = iconv('utf-8','gb2312',"upload/".$file["name"]);
    echo "文件名称:".$file["name"]."</br>";
    echo "文件类型:".$file["type"]."</br>";
    echo "文件大小:".($file["size"]/1024)."K</br>";
    echo "文件临时存储的位置:".$file["tmp_name"]."</br>";
 
 
    //保存上传的文件
    if(file_exists("upload".$file["name"])){
        echo $file["name"]."文件已经存在";
    }else{
        //如果目录不存在则将该文件上传
        if(move_uploaded_file($file['tmp_name'],$name)){
//            move_uploaded_file($file['tmp_name'],"upload/".$file["name"]);
            echo '文件上传成功!';
            echo '图片信息:';
            print_r($file);
        }
    }




$_FILES对象对应的内容
$_FILES['myfile']['name']的值是:客户端文件系统的文件名称
$_FILES['myfile']['type']的值是:客户端传递的文件类型
$_FILES['myfile']['size']的值是:文件的字节大小
$_FILES['myflie']['tmp_name ']的值是:文件被上传后在服务器存储的临时全路径
$_FILES['myfile']['error']的值是:文件上传的错误代码


$_FILES['myfile']['error']错误值的代码和含义
值为0: 表示没有发生任何错误
值为1: 表示上传文件的大小超出了约定值。文件大小的最大值在PHP配置文件中指定的,指令是:upload_max_filesize
值为2: 表示上传文件大小超过了HTML表单隐藏域属性的MAX_FILE_SIZE元素所指定的最大值
值为3: 表示文件只被部分上传
值为4:表示没有上传任何文件
值为6: 表示找不到临时文件夹
值为7: 表示文件写入失败


错误值对应常量
UPLOAD_ERR_OK : 对应值0
UPLOAD_ERR_INI_SIZE : 对应值1
UPLOAD_ERR_FORM_SIZE : 对应值2
UPLOAD_ERR_PARTIAL :  对应值3
UPLOAD_ERR_NO_FILE : 对应值4
UPLOAD_ERR_NO_TMP_DIR : 对应值6
UPLOAD_ERR_CANT_WRITE : 对应值7