精华内容
下载资源
问答
  • TP5 文件上传封装方法

    2018-11-10 16:37:11
    TP5框架下,封装的文件上传方法,可以直接调用,单文件和文件都可以
  • tp 多文件上传,文件及时预览

    千次阅读 2016-06-08 15:44:57
    如果有文件上传 上传附件 $data = $this -> _upload () ; if ( isset ( $data )){ // 如果上传文件的信息不为空,我们就将这些信息保存到数据库中 $this -> db_img ( $data , 1 ) ; } else { $this...

    页面代码

    <form class="form1"  action="__URL__/upload/"  method="post" enctype="multipart/form-data">
    
        <div class="weui_uploader_input_wrp1">
            <div id="localImag1"><img id="preview1" src="__PUBLIC__/image/kh/ph1.png"></div>
            <input class="weui_uploader_input" type="file" name="image[]" id="doc1" οnchange="javascript:setImagePreview(1);" accept="image/jpg,image/jpeg,image/png,image/gif" multiple  />
        </div>
    
        <div class="weui_uploader_input_wrp2">
            <div id="localImag2"> <img id="preview2" src="__PUBLIC__/image/kh/ph2.png"></div>
            <input class="weui_uploader_input" type="file" name="image[]" id="doc2"  οnchange="javascript:setImagePreview(2);" accept="image/jpg,image/jpeg,image/png,image/gif" multiple />
        </div>
    
    
        <div class="login-btn">
            <input class="submit1" type="submit" value="下一步"></button>
        </div>
    
    </form>
    
    
    <script type="text/javascript">
        //下面用于图片上传预览功能
        function setImagePreview(avalue) {
            var docObj=document.getElementById("doc"+avalue);
    
            var imgObjPreview=document.getElementById("preview"+avalue);
            if(docObj.files &&  docObj.files[0])
            {
            //火狐下,直接设img属性
                imgObjPreview.style.display = 'block';
                imgObjPreview.style.width = '150px';
                imgObjPreview.style.height = '180px';
                //imgObjPreview.src = docObj.files[0].getAsDataURL();
    
                //火狐7以上版本不能用上面的getAsDataURL()方式获取,需要一下方式
                imgObjPreview.src = window.URL.createObjectURL(docObj.files[0]);
            }
            else
            {
            //IE下,使用滤镜
                docObj.select();
                var imgSrc = document.selection.createRange().text;
                var localImagId = document.getElementById("localImag"+avalue);
                //必须设置初始大小
                localImagId.style.width = "150px";
                localImagId.style.height = "180px";
                //图片异常的捕捉,防止用户修改后缀来伪造图片
                try{
                    localImagId.style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale)";
                    localImagId.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = imgSrc;
                }
                catch(e)
                {
                    alert("您上传的图片格式不正确,请重新选择!");
                    return false;
                }
                imgObjPreview.style.display = 'none';
                document.selection.empty();
            }
            return true;
        }
    
    </script>



    逻辑处理

    public function upload() {
    
        if (!empty($_FILES)) {
            //如果有文件上传 上传附件
            $data= $this->_upload();
            if(isset($data)){
                //如果上传文件的信息不为空,我们就将这些信息保存到数据库中
                $this->db_img($data,1);
            }else{
                $this->error('插入到数据库失败');
            }
    
        }
    
    }



        protected function _upload() {
            import('@.ORG.UploadFile');
            $reguid=session("reguid");
            //导入上传类
            $upload = new UploadFile();
            //设置上传文件大小
            $upload->maxSize            = 3292200;
            //设置上传文件类型
            $upload->allowExts          = explode(',', 'jpg,gif,png,jpeg');
            //设置附件上传目录
            $upload->savePath           = './Uploads/'.$reguid."/";
            //设置需要生成缩略图,仅对图像文件有效
            $upload->thumb              = true;
            // 设置引用图片类库包路径
            $upload->imageClassPath     = '@.ORG.Image';
            //设置需要生成缩略图的文件后缀
            $upload->thumbPrefix        = 'm_';
            //设置缩略图最大宽度
            $upload->thumbMaxWidth      = '400,100';
            //设置缩略图最大高度
            $upload->thumbMaxHeight     = '400,100';
            //设置上传文件规则
            $upload->saveRule           = 'uniqid';
            //删除原图
            $upload->thumbRemoveOrigin  = false;
            if (!$upload->upload()) {
                //捕获上传异常
                $this->error($upload->getErrorMsg());
            } else {
                //取得成功上传的文件信息
                $uploadList = $upload->getUploadFileInfo();
    //            import('@.ORG.Image');
    //            //m_缩略图添加水印, Image::water('原文件名','水印图片地址')
    //            Image::water($uploadList[0]['savepath'] . 'm_' . $uploadList[0]['savename'], APP_PATH.'Tpl/Public/Images/logo.png');
    //            $_POST['image'] = $uploadList[0]['savename'];
                return $uploadList;
            }
    
        }




    public function db_img($data1,$type){
        $mediator=M("mediator");
        $reguid=session("reguid");
        $mediatordb=$mediator->where("uid=".$reguid)->find();
        //保存当前数据对象
        if($type==1) {
            $data['step'] = 2;
            for ($i = 0; $i < count($data1); $i++) {
    
                $i == 1 ? ($data['sfz_img_fm'] = $data1[$i]['savename']) : ($data['sfz_img_zm'] = $data1[$i]['savename']);
                $mediator->create($data, Model::MODEL_UPDATE);
                $re1 = $mediator->where("id=" . $mediatordb['id'])->save();
                if ($i == 1) {
                    if ($re1 !== false) {
                        $this->redirect("mediator/reg3");
                    } else {
                        echo "<script>alert('上传图片失败')</script>";
                        $this->redirect("mediator/reg2");
                    }
                }
            }
        }elseif($type==2){
            $data['step'] = 4;
            for ($i = 0; $i < count($data1); $i++) {
    
                $i == 1 ? ($data['bank_img'] = $data1[$i]['savename']) : ($data['signatureimg'] = $data1[$i]['savename']);
                $mediator->create($data, Model::MODEL_UPDATE);
                $re1 = $mediator->where("id=" . $mediatordb['id'])->save();
                if ($i == 1) {
                    if ($re1 !== false) {
                        $this->redirect("mediator/reg5");
                    } else {
                        echo "<script>alert('上传图片失败')</script>";
                        $this->redirect("mediator/reg4");
                    }
                }
            }
        }elseif($type==3){
            $data['step'] = 6;
            $data['sfz_img_sc'] = $data1[0]['savename'];
            $mediator->create($data, Model::MODEL_UPDATE);
            $re1 = $mediator->where("id=" . $mediatordb['id'])->save();
            if ($re1 !== false) {
                $this->redirect("mediator/reg7");
            } else {
                echo "<script>alert('上传图片失败')</script>";
                $this->redirect("mediator/reg6");
            }
        }
    
    
    }


    展开全文
  • 主要介绍了layui框架实现文件上传TP3.2.3对上传文件进行后台处理操作,结合实例形式分析了layui框架结合thinkPHP进行文件上传与处理操作相关实现技巧,需要的朋友可以参考下
  • 主要介绍了TP3.2.3框架文件上传操作,结合实例形式详细分析了thinkPHP3.2.3框架文件上传相关原理、实现方法与操作注意事项,需要的朋友可以参考下
  • TP5实现多文件上传

    千次阅读 2019-05-30 17:01:15
    最近要实现图片上传,折腾了很久,总结一下基本的步骤。 首先前端 代码: <form id="addform" action="Upload_talent_tablec/hanleImgList/" method="post" enctype="multipart/form-data"> <p>请选择...

    最近要实现多图片上传,折腾了很久,总结一下基本的步骤。

    首先前端 代码:

     <form id="addform"  action="Upload_talent_tablec/hanleImgList/"        method="post" enctype="multipart/form-data">
        <p>请选择要导入的图片文件:<br/>
           <input type="file" name="image[]" multiple="multiple" />
            <input type="submit" class="btn" value="导入图片">     
        </p>
    </form> 

    需要注意: 默认的文件上传 type = "file" 是上传的单个文件,如果需要上传多个文件,需要加 multiple =“multiple”,name="image[]",name字段的字符串需要加[],表示获取数组。   action ="你自己的php路径"

     

    后端代码:   参数这些不看  只看逻辑,显示单个上传,然后多个上传,多个上传先获取文件,然后遍历调用单个上传的函数

    public function hanleImgList($empNo = '')
    {
        header("Access-Control-Allow-Origin: *");
        $imgFile = request()->file('image');     // 这个获取到上传的文件
        if (empty($imgFile)) {
            return retmsg(-1, '', '获取文件失败');
        }
        $errData = array();  //用于存放导入失败的信息
        $num = 0;  //用于存放导入成功的记录数
        if (!empty($empNo)) {
            $res = $this->handleImportImg($empNo, $imgFile);
            return $res;
        } else {
            foreach ($imgFile as $key => $file) {
                $empName = $file->getInfo()['name'];
                $empNo = substr(trim($empName,''),0,8);
                $res = $this->handleImportImg($empNo, $file);
                if ($res['resultcode'] == -1) {
                    array_push($errData, ['empNo' => $res['data'], 'msg' => $res['resultmsg']]);
                } else {
                    $num++;
                }
            }
            return retmsg(0, $errData, '导入成功' . $num . '条记录, 导入失败' . count($errData) . '条记录');
        }
    }

     

    public function handleImportImg($empNo, $file = '')
    {
        $imgFile = $file;
        if ($imgFile) {
            $info = $imgFile->validate(['size' => 20485760, 'ext' => 'jpg,png,gif'])->move(ROOT_PATH . 'public' . DS . 'img' . DS . 'form_img', $empNo . '_3');     //调用验证器   move移动到制定的文件下,move(string1,string2),string1代表路径,string2表示给文件命名,并加在string1上
            if ($info) {
                $fileName = $info->getFilename();   //获取移动后的文件名
                $saveUrl = 'http://localhost' . DS . 'talents' . DS . 'public' . DS . 'img' . DS . 'form_img' . DS . $fileName;
                $uploadModel = new \app\admin\model\UploadTalentTable();    //我的model层 访问数据库
                $res = $uploadModel->addImg($empNo, $saveUrl);    //访问数据库 新增
                if ($res) {
                    return retmsg(1, $empNo, '上传图片成功');
                } else {
                    return retmsg(-1, $empNo, '上传图片失败');
                }
            } else {
                return retmsg(-1, $empNo, '上传的文件不是图片,请从新上传');
            }
        } else {
            return retmsg(-1, $empNo, '没有获取到文件');
        }
    }
    展开全文
  • tp5.1框架如果使用个(2个都报错)file上传就会报错. 分析:这个不是上传文件的最大值的问题,而是由于linux系统自动清除临时文件的愿意造成的 thinkphp\library\think\File.php 的构造函数加个判断 if(file_exists...

    tp5.1框架如果使用多个(2个都报错)file上传就会报错.
    分析:这个不是上传文件的最大值的问题,而是由于linux系统自动清除临时文件的愿意造成的

    thinkphp\library\think\File.php 的构造函数加个判断
    if(file_exists($filename))
    简单解决报错可以让你用起来
    不知道有没有其他其他不良影响(暂时没发现其他影响)

    public function __construct($filename, $mode = ‘r’)
    {

        if(file_exists($filename)){
            parent::__construct($filename, $mode);
        $this->filename = $this->getRealPath();
        }
        
    }
    

    ————————————————
    版权声明:本文为CSDN博主「skalpat」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/qq_40270754/article/details/85005353

    展开全文
  • TP5.1多文件上传

    2021-08-27 20:16:12
    TP5.1多文件上传报错SplFileObject::__construct(/tmp/phpvfQPvQ)) PHP代码 $dir = ROOT_PATH; $upFile = request()->file(); if (!empty($upFile)) { foreach ($upFile as $key => $file) { $up_status = ...

    TP5.1多文件上传


    TP5.1多文件上传报错SplFileObject::__construct(/tmp/phpvfQPvQ))

    PHP代码

    $dir = ROOT_PATH;
    $upFile = request()->file();
    if (!empty($upFile)) {
        foreach ($upFile as $key => $file) {
            $up_status = false;
            switch ($key) {
                case 'logo'://logo
                    $up_info = $file->rule('uniqid')->validate(['size' => 3145728, 'ext' => 'png'])->move($dir . '/');
                    if ($up_info) {
                        $up_status = true;
                        $data['logo'] = $up_info->getFilename();
                    } else {
                        // 上传失败获取错误信息
                        $reData['code'] = 202;
                        $reData['msg'] = "上传失败:" . $file->getError();
                    }
                    break;
                case 'ad'://ad
                    $up_info = $file->rule('uniqid')->validate(['size' => 3145728, 'ext' => 'jpg,png,gif'])->move($dir . '/');
                    if ($up_info) {
                        $up_status = true;
                        $data['ad'] = $up_info->getFilename();;
                    } else {
                        // 上传失败获取错误信息
                        $reData['code'] = 202;
                        $reData['msg'] = "上传失败:" . $file->getError();
                    }
                    break;
            }
        }
    }
    

    Postman访问

    postman案例

    展开全文
  • 参考文档做多文件上传的时候,会丢失文件例如上传三张图片,会返回三个保存路径,但是服务器存放图片的文件夹内可能只有两张图片然后开始各种调试,百度...#¥%...^&amp;*直到无意间发现返回路径有重复...经过我...
  • TP5 上传文件

    2019-04-30 01:09:13
    NULL 博文链接:https://onestopweb.iteye.com/blog/2386348
  • TP6文件上传

    2021-05-11 17:15:03
    TP6文件上传 1、 前端页面 <form action="/FileController/file" method="post" enctype="multipart/form-data"> <input type="file" name="image"> <input type="submit" value="上传"> </...
  • 主要为大家详细介绍了TP3.2批量上传文件或图片,同名冲突问题的解决方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • TP3.2文件上传

    千次阅读 2018-03-02 17:12:07
    tp3.2文件上传代码,很简单的其实: 控制器代码: /** * 上传图片 */ public function upload(){ $files = $_FILES['img']; $upload = new \Think\Upload();// 实例化上传类 $upload-&gt;maxSize = ...
  • tp5+excel上传下载

    2019-01-25 10:22:32
    基于tp5下做的excel上传和下载设置了几个字段,根据个人需要设置字段
  • 解决thinkphp3.2出现Class 'Think\Upload' not found的问题,下载后直接扔到ThinkPHP\Library\Think下面直接解压出来然后刷新你的程序就能解决
  • tp5 文件上传

    千次阅读 2019-04-17 18:28:15
    //判断文件类型是否被允许上传 if(!in_array($type, $allow_type)){ //如果不被允许,则直接停止程序运行 $result = ["code"=>2004,"msg"=>"文件格式不正确"]; return json_encode($result); }...
  • 最近在做一个教育类的小商城的微信小程序,用到了上传多个图片文件到服务器端。下面脚本之家小编给大家带来了tp5实现微信小程序多图片上传到服务器的方法,需要的朋友可以参考下
  • TP6文件上传问题

    2021-07-09 15:27:24
    1.如果要将上传文件存在本地的pubilc/home/images文件中将config目录的filesystem.php修改成return [ // 默认磁盘 ‘default’ => env(‘filesystem.driver’, ‘local’), // 磁盘列表 ‘disks’ => [ ...
  • 主要介绍了ThinkPHP5.0文件上传后找不到临时文件的修改方法,需要的朋友可以参考下
  • 在使用tp上传多文件上传的时候,一定要注意前台的写法!!! 先把我代码贴出来参考一下: index控制器: &amp;lt;?php namespace app\index\controller; use think\Controller; use think\Loader; use ...
  • TP5.1多文件同时上传

    2019-10-16 20:23:26
    TP5.1多文件同时上传错误写法正确写法 tp5.1 文件同时上传 报错 SplFileObject::__construct(/tmp/phpvfQPvQ) 错误写法 $data=[]; foreach ($_FILES as $key => $value){ $file = request()->file($...
  • TP5后台文件上传

    2018-11-16 16:28:26
    // 文件上传  public function upload(){  $file =request()-&gt;file('file');  $arr = $file-&gt;getInfo(); // 文件名称  $config = array('size'=&gt;1024*1024*10,'ext'=&gt;array('mp3'...
  • tp5 上传oss图片

    2018-08-23 12:10:55
    使用tp5上传到oss服务上, 方法已经测试过可以使用,只要按照步骤来就可以
  • php tp6文件上传 保姆级解释 防止萌新跟我一样迷路 有什么不对的请大佬指点 public function file(Request $request){ if (!$_FILES['file']['error']) { //上传文件的数据类型 可以打印$_FILFES看传输的文件...
  • thinkphp3.2 webuploader较大视频文件分段上传方法demo,大视频分段上传上传完成后又将分段视频合并成一个视频文件
  • 绝对物有所值~代码不是特别工整~对付看吧!思路很重要!
  • thinkphp多文件上传

    2014-10-09 16:49:17
    十分不错的。好用的不得了
  • 主要介绍了PHP中TP5 上传文件的实例详解的相关资料,这里实现PHP 的上传文件的实例,需要的朋友可以参考下
  • TP5.1上传文件

    千次阅读 2019-11-12 15:38:08
    TP5.1上传文件

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 11,072
精华内容 4,428
关键字:

tp多文件上传