php 上传文件

Posted 学知无涯

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php 上传文件相关的知识,希望对你有一定的参考价值。

php 上传文件


 

html表单,需要记住form的enctype属性:

<form action=‘index.php‘ method="POST" enctype="multipart/form-data">
<input type=‘file‘ name=‘file‘ />
<input type=‘submit‘ value=‘提交‘ />
</form>

php代码:

function uploadFile($fileInfo,$path=‘./upload/‘){
    //判断错误号
    if($fileInfo[‘error‘] == UPLOAD_ERR_OK){
        //文件是否是通过HTTP POST上传的
        if(is_uploaded_file($fileInfo[‘tmp_name‘])){
            $ext = strtolower(pathinfo($fileInfo[‘name‘],PATHINFO_EXTENSION));
            $allow_Ext = array(‘jpg‘,‘jpeg‘,‘png‘);
            if(in_array($ext, $allow_Ext)){
                $length = 6;
                $newFileName = substr(md5(uniqid(microtime(true),true)),0,$length);
                $savePath = $path . $newFileName .‘.‘.$ext;
                if(move_uploaded_file($fileInfo[‘tmp_name‘], $savePath)){
                    return ‘success‘;
                }else{
                    return ‘file upload fail‘;
                }
            }else{
                return ‘file type not allow‘;
            }
        }else{
            return ‘文件不是通过HTTP POST上传的‘;
        }
    }else{
        switch($fileInfo[‘error‘]){
            case 1:
                $errMsg = ‘超出了配置文件的大小‘;//PHP.ini的upload_max_filesize的值
                break;
            case 2:
                $errMsg = ‘超过了表单允许接收数据的大小‘;//表单中MAX_FILE_SIZE的值
                break;
            case 3:
                $errMsg = ‘文件部分被上传‘;
                break;
            case 4:
                $errMsg = ‘没有文件被上传‘;
                break;
            case 6:
                $errMsg = ‘找不到临时文件夹‘;
                break;
            case 7:
                $errMsg = ‘文件写入失败‘;
                break;
            default: 
                $errMsg = "Unknown upload error"; 
                break;     
        }
        return $errMsg;
    }
}
//var_dump($_FILES);
if(isset($_FILES[‘file‘])){
   echo uploadFile($_FILES[‘file‘]);
}

 

以上是关于php 上传文件的主要内容,如果未能解决你的问题,请参考以下文章

代码片段 PHP,预期文件结尾,我错在哪里?

android的自带的httpClient 怎么上传文件

PHP常用代码片段

Alamofire 文件上传出现错误“JSON 文本未以数组或对象开头,并且允许未设置片段的选项”

PHP文件上传代码用法

php文件上传漏洞代码只允许上传图片