<小田吃饺子> PHP:图片上传

<?php
class TL_Update_File{
    private $file = null;//接受图片名称
    private $files = [];//图片属性
    public $size = null;//上传文件大小限制
    public $save_path = null;//保存路径
    public $mime = null;//文件上传支持类型
    private $error = null;//图片不符合要求者
    //接受图片
    function __construct($file=null){
        $this->save_path = str_replace("\\","/",dirname(__FILE__))."/";
        $this->file = $file;
        if($file){
            $this->files = $_FILES[$file];
        }else{
            $this->files = $_FILES;
        }
    }
    //一系列属性向
    private function attribute(){
        if($this->file){
            $this->empty_ture();
        }else{
            $this->empty_false();
        }
        if($this->size){
            if($this->file){
                $this->Size_ture();
            }else{
                $this->Size_false();
            }
        }
        if($this->mime){
            if($this->file){
                $this->mime_ture();
            }else{
                $this->mime_false();
            }
        }
    }
    //判断图片是否为空
    function empty_false(){
        foreach ($this->files as $key => $value){
            if($this->files[$key][‘error‘]){
                $this->error[$key] = $value;
                $this->error[$key][‘tl_error‘] = "改图片为空";
                unset($this->files[$key]);
            }else{
                $this->files[$key][‘mime‘] = substr($value[‘name‘], strrpos($value[‘name‘], ".")+1);
            }
        }
    }
    //判断图片是否为空
    function empty_ture(){
        if($this->files[‘error‘]) {
            $this->error[$this->file] = $this->files;
            $this->error[$this->file][‘tl_error‘] = "改图片为空";
            $this->files=[];
        }else{
            $this->files[‘mime‘] = substr($this->files[‘name‘], strrpos($this->files[‘name‘], ".") + 1);
        }
    }
    //文件后缀名是否受限制
    function mime_ture(){
        if($this->files){
            if(!in_array($this->files[‘mime‘],$this->mime)){
                $this->error[$this->file] = $this->files;
                $this->error[$this->file][‘tl_error‘] = "不支持改后缀名";
                $this->files=[];
            }
        }
    }
    //文件后缀名是否受限制
    function mime_false(){
        foreach ($this->files as $key => $value){
            if(!in_array($this->files[$key][‘mime‘],$this->mime)){
                $this->error[$key] = $value;
                $this->error[$key][‘tl_error‘] = "不支持改后缀名";
                unset($this->files[$key]);
            }
        }
    }
    //文件大小是否受限制
    function Size_ture(){
        if($this->files[‘size‘] > $this->size){
            $this->error[$this->file] = $this->files;
            $this->error[$this->file] = $this->files;
            $this->error[$this->file][‘tl_error‘] = "文件过大";
            $this->files=[];
        }
    }
    //文件大小是否受限制
    function Size_false(){
        foreach ($this->files as $key => $value){
            if($this->files[$key][‘size‘] > $this->size){
                $this->error[$key] = $value;
                $this->error[$key][‘tl_error‘] = "文件过大";
                unset($this->files[$key]);
            }
        }
    }
    //保存图片
    function save_file(){
        if($this->files){
            $file_path_dir = date(‘Ym‘,time()) ."/";
            $file_name = time() . rand(00000,99999) . "." . $this->files["mime"];
            $this->is_dir_on_off($this->save_path . date(‘Ym‘,time()) ."/");
            if($this->file){
                $this->save_file_ture($file_path_dir,$file_name);
            }else{
                $this->save_file_false($file_path_dir,$file_name);
            }
        }
    }
    //保存图片
    function save_file_ture($file_path_dir,$file_name){
        move_uploaded_file($this->files["tmp_name"] , $this->save_path . $file_path_dir . $file_name);
    }
    //保存图片
    function save_file_false($file_path_dir,$file_name){
        foreach ($this->files as $key => $value){
            move_uploaded_file($this->files[$key]["tmp_name"] , $this->save_path . $file_path_dir . $file_name);
        }
    }
    //创建目录
    function is_dir_on_off($file_path){
        if(!is_dir($file_path)){
            mkdir($file_path,0777);
        }
    }
    //保存文件
    function move(){
        $this->attribute();
        $this->save_file();
    }
}

  

时间: 2024-08-02 08:46:25

<小田吃饺子> PHP:图片上传的相关文章

jq upload图片上传代码

/* * 图片上传 * */ function postImgData() { $("#addFileInfo input[name='file']").change(function () { console.log($(this).val()) if (!$(this).val()) { return } var fileTyle = $(this).val().split("."); console.log(fileTyle); if (fileTyle[1]

[项目构建 五]babasport ajax图片上传及FastDFS入门案例.

今天来开始写图片上传的功能, 现在的图片上传都讲求 上传完成后立刻回显且页面不刷新, 这里到底是怎么做的呢? 当然是借助于ajax了, 但是ajax又不能提交表单, 这里我们还要借助一个插件: jquery.form.js剩下的一个是FastDFS, 那么什么是FastDFS呢? FastDFS是一个开源的轻量级分布式文件系统,由跟踪服务器(tracker server).存储服务器(storage server)和客户端(client)三个部分组成,主要解决了海量数据存储问题,特别适合以中小文

ckeditor4.5.1配置图片上传的方法

本篇博文主要面向初学者,一步一步地实现ckeditor的图片上传,欢迎各位大神指正. ckeditor的图片上传默认是关闭的,网上也有很多相关的教程,可是不是讲的不完整,就是版本太旧已经不适用.我写这篇博文主要面向初学者,有错误的地方欢迎指正. 截止本文撰写,ckeditor最新版本是4.5.1,我下载的版本是4.5.1standard,如果本文的方法不管用,请下载同一版本尝试. 1.开启图片上传界面 文件地址:ckeditor/plugins/image/dialogs/image.js 搜索

数往知来 JQuery 图片上传_水印 &lt;二十二&gt;

一.图片上传  :enctype='multipart/form-date 首先在进行文件上传时,添加form表单中的enctype属性指定enctype='multipart/form-date', 文件数据发送给服务端,并不是把文件路径发送给服务端了,它会随机生成一个分割字符串, 把每一个表单元素分割开 <form method='post' action='' enctype='multipart/form-date'> //这里的enctype是提交请求报文的报文体的一种编码格式, 默

微信端调取相册和摄像头,实现图片上传,并上传到本地服务器

在微信公众号网页开发时,遇到了图片上传的问题,查看了微信的开发者文档,里面的资料比较全.接着我们看一下整个的流程 1.config权限配置 $.ajax({ url:'wx_getConfig', type:'get', dataType:'json', async:false, success:function(data){ var appId = data[0].appId; var timestamp = data[0].timestamp; var nonceStr = data[0].

java图片上传(mvc)

最近有开始学起了java,好久没写文章了,好久没来博客园了.最近看了看博客园上次写的图片上传有很多人看,今天在一些篇关于java图片上传的.后台接收用的是mvc.不墨迹了,直接上图. 先看目录结构.idea开发. 一.图片上传还是使用的这款jq插件.前端部署这款插件,不用说了吧.效果图       二.前台代码只需要盖一个位置.因为是比较好用的插件.插件样式自行修改. 三.后台代码. 后面看不见的. 这个图片上传主要是自己写了几个函数.让图片储存更加方便.分成了年月日储存.但是后期遍历比较困难,

.net core CKEditor 图片上传

最近在玩 asp.net core,不想用UEditor,想使用CKEditor.故需要图片上传功能. 废话不多说,先上效果图: CKEditor 前端代码: <text id="content" name="content"></text> <script> CKEDITOR.replace('content'); </script> CKeditor config.js 配置代码:需要配置图片上传路径 CKEDIT

微信JS-SDK接口 + FLASK实现图片上传

最近在做一个项目从全球各地采集图片,考虑采用微信JS-SDK来简化开发.图片会首先上传到微信的服务器,返回一个id,然后根据这个id去微信服务器获取图片.微信提供可选择的压缩图片功能.图片首先上传到微信的服务器,可以保障较好的上传稳定性. 详细内容请参考微信的官方文档:微信JS-SDK说明文档 运行页面如下 HTML 在微信demo的基础上修改,见微信JS-SDK DEMO页面 增加图片的多次选择,多次上传,删除等功能 uploadImage.html <!DOCTYPE html> <

CKEditor图片上传实现详细步骤(使用Struts 2)

本人使用的CKEditor版本是3.6.3.CKEditor配置和部署我就不多说. CKEditor的编辑器工具栏中有一项"图片域",该工具可以贴上图片地址来在文本编辑器中加入图片,但是没有图片上传. "预览"中有一大堆鸟语,看得很不爽.可以打开ckeditor/plugins/image/dialogs/image.js文件,搜索"b.config.image_previewText"就能找到这段鸟语了,(b.config.image_prev

JSP+Servlet中使用jspsmartupload.jar进行图片上传下载

JSP+Servlet中使用cos.jar进行图片上传 upload.jsp <form action="FileServlet" method="post" enctype="multipart/form-data"> <input type="file" name="myfile"> <input type="text" name="cmt&q