thinkphp5 上传多个文件需要实例化么

 我来答
龙氏风采
推荐于2018-03-20 · 知道合伙人互联网行家
龙氏风采
知道合伙人互联网行家
采纳数:5849 获赞数:12817
从事互联网运营推广,5年以上互联网运营推广经验,丰富的实战经

向TA提问 私信TA
展开全部
<tr>
<td><input type='file' name='video[]' /></td>
<td><input type='file' name='video[]' /></td>
<td><input type='file' name='video[]' /></td>
</tr>
<tr>
<td><input type='file' name='pic[]' /></td>
<td><input type='file' name='pic[]' /></td>
<td><input type='file' name='pic[]' /></td>
</tr>
这种不同name的多文件上传,怎么改UploadFile.class.php类,来实现多name多文件上传
index.html
 <form method="POST" enctype="multipart/form-data" action="{:U('Index/upload')}">
    <tr >
        <td>flv文件</td>
        <td><input type="file" name="flv" /></td>
    </tr>
    <tr >
        <td>视频压缩文件</td>
        <td><input type="file" name="movie" /></td>
    </tr>
    <tr>
        <td>缩略图</td>
        <td><input type="file" name="img" /></td>
    </tr>
    <input type="submit" value="上传" />
 </form>
复制代码
UploadFile.class.php 162行
           if (!is_dir($savePath)) {
                // 检查目录是否编码后的
                if (is_dir(base64_decode($savePath))) {
                    $savePath = base64_decode($savePath);
                } else {
                    // 尝试创建目录
                    if (!mkdir($savePath)) {
                        $this->error = '上传目录' . $savePath . '不存在';
                        return false;
                    }
                }
            } else {
                if (!is_writeable($savePath)) {
                    $this->error = '上传目录' . $savePath . '不可写';
                    return false;
                }
            }
复制代码
改成
        if(!is_array($savePath)){
           if (!is_dir($savePath)) {
                // 检查目录是否编码后的
                if (is_dir(base64_decode($savePath))) {
                    $savePath = base64_decode($savePath);
                } else {
                    // 尝试创建目录
                    if (!mkdir($savePath)) {
                        $this->error = '上传目录' . $savePath . '不存在';
                        return false;
                    }
                }
            } else {
                if (!is_writeable($savePath)) {
                    $this->error = '上传目录' . $savePath . '不可写';
                    return false;
                }
            }
        }
复制代码
UploadFile.class.php 194行
$file['savepath'] = $savePath;
复制代码
改成
$file['savepath'] = is_array($savePath)?$savePath[$key]:$savePath;
复制代码
    Public function upload() {
        import('Org.Net.UploadFile');
        $upload = new \Org\Net\UploadFile(); // 实例化上传类
        $upload->maxSize = 3145728; // 设置附件上传大小
        $upload->allowExts = array('jpg', 'gif', 'png', 'jpeg'); // 设置附件上传类型
 //        $upload->savePath = './Public/Uploads/'; // 设置附件上传目录
        $upload->savePath = array('flv'=>'./Public/Uploads/flv/','movie'=>'./Public/Uploads/movie/','img'=>'./Public/Uploads/img/');
        if (!$upload->upload()) {
            $this->error($upload->getErrorMsg());
        } else {// 上传成功 获取上传文件信息
            $info = $upload->getUploadFileInfo();
        }
       
    }
复制代码
$upload->savePath 改为数组
./Public/Uploads/flv/
./Public/Uploads/movie/
./Public/Uploads/img/
这3个目录要手动创建 这样在就变成不影响原来程序的
情况下实现上传多个文件到不同的目录了
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式