php文件上传(强大文件图片上传类)

/*
 * created on 2010-6-21
 *
 * the class for image to upload
 *
 * made by s71ence
 *
 * @$user_id
 * @$max_file_size
 * @$max_image_side
 * @$destination_folder
 *
 * return:
 * @$_cookie['img_path']
 * @$img_unfind
 * @$img_type
 * @$mkdir_warry
 * @$img_side_too_big
 * @$img_exist
 * @$img_move
 * @$img_upload_sucess
 */
 

 代码如下 复制代码

header('content-type:text/html;charset=utf-8');
 
 class image_upload extends fn_function
 {
 private $user_id;
 private $max_file_size; //allow the image's size
 private $max_image_side; //allow the image's side
 private $destination_folder; //image's storage path
 private $img_preview;
 private $img_preview_size;
 private $cookie_set; //the cookie's name

 function __construct($user_id,$max_file_size,$max_image_side,$destination_folder,$img_preview,$img_preview_size,$cookie_set)
 {
  $this->user_id=$user_id;
  $this->max_file_size=$max_file_size;
  $this->max_image_side=$max_image_side;
  $this->destination_folder=$destination_folder;
  $this->img_preview=$img_preview;
  $this->img_preview_size=$img_preview_size;
  $this->cookie_set=$cookie_set;
  $this->get_date();
  $this->get_image_type();
 }

 private function get_date()
 {
  $this->date=fn_function::get_server_date();
  return $this->date;
 }

 function get_image_type()
 {
  $this->up_img_types=array(
            'image/jpg',
            'image/jpeg',
            'image/png',
            'image/pjpeg',
            'image/gif',
            'image/bmp',
            'image/x-png'
        );

  return $this->up_img_types;
 }

 function upload_image()
 {
  if ($_server['request_method'] == 'post')
  {
   //check the iamge is exist
   if (!is_uploaded_file($_files["upfile"]["tmp_name"]))
   {
    return $img_unfind=fn_function::alert_msg('图片不存在!');
    exit;
      }

      $file = $_files["upfile"];

   //check the iamge's size
      if($this->max_file_size < $file["size"])
      {
       return $img_side_too_big=fn_function::alert_msg('图片大小超过系统允许最大值!');
       exit;
      }

      //check the iamge's type
      if(!in_array($file["type"], $this->up_img_types))
      {
       return $img_type=fn_function::alert_msg('图片类型不符!');
       exit;
      }

      if(!file_exists($this->destination_folder))
      {
       if(!fn_function::mkdirs($this->destination_folder))
       {
        return $mkdir_warry=fn_function::alert_msg('目录创建失败!');
        exit;
       }
      }

      $file_name=$file["tmp_name"];
      $image_size = getimagesize($file_name);
      $pinfo=pathinfo($file["name"]);
      $file_type=$pinfo['extension'];
      $destination = $this->destination_folder.time().".".$file_type;
   setcookie($this->cookie_set, $destination);

   if($image_size[0]>$this->max_image_side || $image_size[1]>$this->max_image_side)
   {
    return $img_side_too_big=fn_function::alert_msg('图片分辨率超过系统允许最大值!');
    exit;
   }

   $overwrite="";
   if (file_exists($destination) && $overwrite != true)
   {
    return $img_exist=fn_function::alert_msg('同名文件已经存在了!');
    exit;
      }

      if(!move_uploaded_file ($file_name, $destination))
      {
       return $img_move=fn_function::alert_msg('移动文件出错!');
       exit;
      }

   $img_upload_sucess="<font color=red face=微软雅黑>上传成功</font><br>";
   if($this->img_preview==1)
   {
    $img_src="<img src="".$destination."" width=".($image_size[0]*$this->img_preview_size)." height=".($image_size[1]*$this->img_preview_size);
    $img_upload_sucess.=$img_src;
   }
      return $img_upload_sucess;
  }
 }

 function __destruct()
 {
  //clear
 }
 }

时间: 2024-08-03 02:21:57

php文件上传(强大文件图片上传类)的相关文章

oss-在Ali服务器A上通过OSS将图片上传给另一台Ali服务器B,老是timeout 异常!

问题描述 在Ali服务器A上通过OSS将图片上传给另一台Ali服务器B,老是timeout 异常! 项目C在本地(Windows+tomcat )下运行,调用上传图片方法 uploadPic(主要调用 OssClient.putObject() 方法 ), 可以把 图片 p 上传到Ali 服务器 B上.但是一旦把 C 部署到 到Ali服务器A上(linux + tomcat ),调用 同一个方法 uploadPic 却总是说 timeout exception.超时时间设置的是 30s,图片文件

asp.net文件上传解决方案(图片上传、单文件上传、多文件上传、检查文件类型)_实用技巧

小编之前也介绍了许多ASP.NET文件上传的解决案例,今天来个asp.net文件上传大集合. 1 使用标准HTML来进行图片上传 前台代码: <body> <form id="form1" runat="server"> <div> <table> <tr> <td colspan="2" style="height: 21px" > 使用标准HTML来进

上传文件-ckeditor整合ckfinder实现图片上传

问题描述 ckeditor整合ckfinder实现图片上传 这是咋回事??? 解决方案 ckEditor+ckFinder整合实现上传功能黑马程序员_ckeditor+ckfinder实现本地图片上传struts2整合CKEditor和CKFinder实现上传 解决方案二: 你没点击"上传到服务器"这个按钮吧..要先上传才能点击确定

java web图片上传和文件上传实例_java

图片上传和文件上传本质上是一样的,图片本身也是文件.文件上传就是将图片上传到服务器,方式虽然有很多,但底层的实现都是文件的读写操作. 注意事项 1.form表单一定要写属性enctype="multipart/form-data" 2.为了能保证文件能上传成功file控件的name属性值要和你提交的控制层变量名一致, 例如空间名是file那么你要在后台这样定义 private File file; //file控件名 private String fileContentType;//图

asp.net图片上传实例

 网站后台都需要有上传图片的功能,下面的例子就是实现有关图片上传.缺点:图片上传到本服务器上,不适合大量图片上传 第一.图片上传,代码如下: xxx.aspx  代码如下:  <td class="style1">                  <asp:FileUpload ID="FileUpload1" runat="server"  />                 <asp:Button ID=&q

基于firefox实现ajax图片上传_AJAX相关

图片文件上传,有很多种协议的,这次主要讲的是"Content-Type:multipart/form-data;"的形式. 在工作中前台一些静态文件是通过FTL模版系统,前台页面通过SSI进行引用的,项目开发的时候就需要生成大量的静态SHTML文件了,本来觉得应该是后台的事情,可是自从我进这公司,这快东西就交给了前端~~我表示无语,没办法就按着习惯来吧,但我是个懒人,就想着能不能通过ajax提交呢 基于平时对MDN的翻阅,今天主要是FormData这个对象解决多文件上传的协议. htt

php+html5实现无刷新图片上传教程_php实例

本篇向大家介绍一种全新的上传图片的方式,利用html5的FileReader读取图片文件,然后将数据传输到服务器再使用PHP进行处理.实现过程如下(带图片预览功能) 前端html代码 upload,html <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content=&qu

html5 图片上传,支持图片预览、压缩、及进度显示,兼容IE6+及标准浏览器

原文:html5 图片上传,支持图片预览.压缩.及进度显示,兼容IE6+及标准浏览器 以前写过上传组件,见 打造 html5 文件上传组件,实现进度显示及拖拽上传,兼容IE6+及其它标准浏览器,对付一般的上传没有问题,不过如果是上传图片,且需要预览的话,就力有不逮了,趁着闲暇时间,给上传组件添加了单独的图片上传UI,支持图片预览和缩放(通过调整图片的大小以实现图片压缩). 上传组件特点 轻量级,不依赖任何JS库,核心代码(Q.Uploader.js)仅约700行,min版本加起来不到12KB 纯

ThinkPHP示例中心添加图片上传示例

ThinkPHP新添加了3.1版本的图片上传示例. 新版的上传类内部做了一些调整,实例化的参数也有所改变,目的是为了更加明确化. ThinkPHP示例之图片上传,包括图片上传.数据库保存.缩略图生成以及图片水印功能演示.首先需要下载框架核心,然后把示例解压到Web根目录下面,并修改入口文件中的框架入口文件的位置.导入示例目录下面的data.sql文件到你的数据库,或者执行SQL: CREATE&http://www.aliyun.com/zixun/aggregation/37954.html&q

upload-关于js图片上传判断尺寸大小

问题描述 关于js图片上传判断尺寸大小 method="post" enctype="multipart/form-data" modelAttribute="personaLib"> 上传/form:form 页面代码如下.不知道js怎么写.求指导 解决方案 js判断图片上传js判断file文本域中待上传文件的大小与尺寸图片上传 文件类型和大小的判断