>  기사  >  백엔드 개발  >  PHP 기본 4 - 파일 업로드

PHP 기본 4 - 파일 업로드

不言
不言원래의
2018-04-26 14:22:141155검색

이 글에 소개된 내용은 php의 기본에 관한 내용으로, 어느 정도 참고할만한 가치가 있습니다. 도움이 필요한 친구들이 참고할 수 있도록 하겠습니다.

<!-- 文件上传 -->
<form action="" enctype="multipart/form-data" method="post">
    <input type="file" name="文件"/><br />
    <input type="submit" value="上传"/>
</form>
<?php
//文件上传之需要注意php.ini文件
//     php.ini文件中的配置
//     file_uploads
//     post_max_size
//     upload_max_filesize
//     memory_limit
// print_r($_FILES["upfile"]);
if (is_uploaded_file($_FILES[&#39;upfile&#39;][&#39;tmp_name&#39;])) {
    $upfile=$_FILES["upfile"];
    $name=$upfile["name"];
    $type=$upfile["type"];
    $size=$upfile["size"];
    $tmp_name=$upfile["tmp_name"];
    
    switch ($type) {
        case &#39;image/pjpeg&#39;:
            $okType=true;
            break;
        case &#39;image/jpeg&#39;:
            $okType=true;
            break;
        case &#39;image/gif&#39;:
            $okType=true;
            break;
        case &#39;image/png&#39;:
            $okType=true;
            break;
    }
    if ($okType) {
        $error=$upfile["error"];
        echo "==================<br/>";
        echo "上传的文件名称是:".$name."<br/>";
        echo "上传的文件类型是:".$type."<br/>";
        echo "上传的文件大小是:".$size."<br/>";
        echo "上传之后系统返回的值是:".$error."<br/>";
        echo "上传的文件临时存放的文件路径是:".$tmp_name."<br/>";
        
        echo "开始移动上传文件<br/>";
        move_uploaded_file($tmp_name, &#39;up/&#39;.$name);
        $destination="up/".$name;
        echo "================<br/>";
        echo "上传信息:<br/>";
        if ($error==0) {
            echo "文件上传成功!";
            echo "<br>图片预览<br>";
            echo "<img src=".$destination.">";
        }elseif ($error==1){
            echo "超过了文件大小,在php.ini文件中设置";
        }elseif ($error==2){
            echo "超过文件的大小MAX_FILE_SIZE选项指定的值";
        }elseif ($error==3){
            echo "文件只有部分被上传";
        }elseif ($error==4){
            echo "上传文件大小为0";
        }
    }else {
        echo "请上传jpg,gif,png等格式的图片";
    }
}
?>

<!-- 文件上传的步骤 -->
<?php
//     一、判断是否有错误码
//     二、自定义判断是否超出文件大小范围
//     三、判断后缀名和mime类型是否符合
//     四、生成文件名
//     五、判断是否是上传文件
//     六、移动临时文件到指定位置
?>

<!-- 文件上传表单注意事项 -->
<html>
    <head>
        <meta charset="utf-8"/>
        <title>单文件上传</title>
    </head>
    <body>
        <form action="file.php" method="post"
        enctype="multipart/form-data">
        <input type="file" name="filename"/>
        <input type="submit" value="上传"/>
        </form>
    </body>
</html>

<!-- 按照数组和步骤完成文件上传 -->
<!-- 第一步,判断错误码 -->
<!-- 第二步,判断文件是否超出大小 -->
<!-- 第三步,判断文件的mime类型是否正确 -->
<!-- 第四步,生成指定的路径和文件名 -->
<!-- 第五步,判断是否是上传文件 -->
<!-- 第六步,移动文件到指定位置 -->
<form action=&#39;&#39; method=&#39;post&#39; enctype=&#39;multipart/form-data&#39;>
    <input type=&#39;file&#39; name=&#39;myfile&#39; />
    <input type="submit" />
</form>

<?php
    echo &#39;<pre class="brush:php;toolbar:false">&#39;;
    var_dump($_FILES[&#39;myfile&#39;]);
    echo &#39;
'; if ($_FILES['myfile']['error'] > 0) { switch ($_FILES['myfile']['error']) { case '1': echo '文件过大'; break; case '2': echo '文件超出指定大小'; break; case '3': echo '只有部分文件被上传'; break; case '4': echo '文件没有被上传'; break; case '6': echo '找不到指定文件'; break; case '7': echo '文件写入失败'; break; default: echo '上传出错
'; } }else{ $MAX_FILE_SIZE = 100000; if ($_FILES['myfile']['size'] > $MAX_FILE_SIZE) { exit("文件超出指定大小"); } $allowSuffix = array('jpg','gif'); $myImg = explode('.', $_FILES['myfile']['name']); $myImgSuffix = array_pop($myImg); if (!in_array($myImgSuffix, $allowSuffix)) { exit("文件后缀名不符"); } $allowMime = array( "image/jpg", "image/jpeg", "image/pjpeg", "image/gif" ); if (!in_array($_FILES['myfile']['type'], $allowMime)) { exit('文件格式不正确,请检查'); } $path = "upload/images/"; $name = data('Y').date('m').date("d") .date('H').date('i').date('s'). rand(0,9).'.'.$myImgSuffix; if (is_uploaded_file($_FILES['file']['tmp_name'])) { if (move_uploaded_file($_FILES['myfile']['tmp_name'], $path.$name)) { echo "上传成功"; }else { echo '上传失败'; } } } ?> 单文件上传

관련 추천:

php 기본 3

PHP 기본 2

php 기본 1


위 내용은 PHP 기본 4 - 파일 업로드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.