Ver código fonte

增加上传头像图片的功能

zhouzhijian 9 anos atrás
pai
commit
439f0bb6d3
3 arquivos alterados com 24 adições e 26 exclusões
  1. 3 2
      fooder.php
  2. 18 21
      helper/file_upload.php
  3. 3 3
      mobile/control/member_info.php

+ 3 - 2
fooder.php

@@ -8,6 +8,7 @@ define('BASE_MOBILE_PATH',BASE_ROOT_PATH.'/mobile');
 define('BASE_CRONTAB_PATH',BASE_ROOT_PATH.'/crontab');
 define('BASE_UPLOAD_PATH',BASE_DATA_PATH.'/upload');
 define('BASE_UTIL_PATH',BASE_ROOT_PATH.'/util');
+define('BASE_AVATAR_PATH',BASE_UPLOAD_PATH.'/shop/avatar');
 
 require_once(BASE_ROOT_PATH . '/global.php');
 require_once(BASE_DATA_PATH . '/config/config.ini.php');
@@ -30,10 +31,10 @@ require_once(BASE_CORE_PATH . '/framework/libraries/log.php');
 require_once(BASE_CORE_PATH . '/framework/db/mysqli.php');
 require_once(BASE_CORE_PATH . '/framework/function/goods.php');
 require_once(BASE_CORE_PATH . '/framework/libraries/validate.php');
-require_once(BASE_CORE_PATH . '/framework/libraries/resizeimage.php');
+require_once(BASE_CORE_PATH . '/framework/libraries/resizeimage.php');
 
 require_once(BASE_ROOT_PATH . '/helper/performance_helper.php');
 require_once(BASE_ROOT_PATH . '/helper/sensitive_word/dfa.php');
 require_once(BASE_ROOT_PATH . '/helper/request_helper.php');
 require_once(BASE_ROOT_PATH . '/helper/configure.php');
-?>
+?>

+ 18 - 21
helper/file_upload.php

@@ -7,12 +7,13 @@ class FileUpload
         return is_dir($path) or (self::recursive_makedir(dirname($path)) and @mkdir($path));
     }
 
-    static private function unlink_tmpfiles($file)
+    static private function clean_up($file, $result)
     {
         @unlink($file);
+        return $result;
     }
 
-    static public function upload($img_savedir, $subdir, $is_img = true, $overwrite = false)
+    static public function upload($img_savedir, $is_img = true, $overwrite = false)
     {
         $tmppath = $_POST["file_path"];
         $sha1 = $_POST["file_sha1"];
@@ -23,55 +24,51 @@ class FileUpload
         $result["file"] = "";
 
         if (!isset($tmppath) || empty($tmppath)) {
-            self::unlink_tmpfiles($tmppath);
-            return $result;
+            return self::clean_up($tmppath, $result);
         }
 
         if (!isset($sha1) || empty($sha1)) {
-            self::unlink_tmpfiles($tmppath);
-            return $result;
+            return self::clean_up($tmppath, $result);
         }
 
         if (!isset($file_name) || empty($file_name)) {
-            self::unlink_tmpfiles($tmppath);
-            return $result;
+            return self::clean_up($tmppath, $result);
         }
 
         if ($is_img) {
             $ext_name = strtolower(pathinfo($file_name)['extension']);
             if (!($ext_name == 'jpg' || $ext_name == 'jpeg' || $ext_name == 'png' || $ext_name == 'gif' || $ext_name == 'bmp')) {
-                self::unlink_tmpfiles($tmppath);
-                return $result;
+                return self::clean_up($tmppath, $result);
             }
         }
 
-        if (!isset($img_savedir) || !isset($subdir)) {
-            self::unlink_tmpfiles($tmppath);
-            return $result;
+        if (!isset($img_savedir)) {
+            return self::clean_up($tmppath, $result);
         }
 
         $timestamp = date("YmdHis", time());
-        $dest_file = $img_savedir . "/" . $subdir . "/" . substr($timestamp, 0, 4) . "/" . substr($sha1, 0, 2) . "/" . $sha1 . '.' . $ext_name;
+        $dest_file = $img_savedir . "/" . substr($timestamp, 0, 4) . "/" . substr($sha1, 0, 2) . "/" . $sha1 . '.' . $ext_name;
 
         if (!self::recursive_makedir(dirname($dest_file))) {
-            self::unlink_tmpfiles($tmppath);
-            return $result;
+            return self::clean_up($tmppath, $result);
         }
 
         if (!$overwrite) {
             if (!file_exists($dest_file)) {
-                @copy($tmppath, $dest_file);
+                if (!copy($tmppath, $dest_file)) {
+                    return self::clean_up($tmppath, $result);
+                }
             }
 
         } else {
-            @copy($tmppath, $dest_file);
+            if (!copy($tmppath, $dest_file)) {
+                return self::clean_up($tmppath, $result);
+            }
         }
 
-        self::unlink_tmpfiles($tmppath);
-
         $result["ret"] = true;
         $result["file"] = $dest_file;
-        return $result;
+        return self::clean_up($tmppath, $result);
     }
 }
 

+ 3 - 3
mobile/control/member_info.php

@@ -8,6 +8,7 @@ require_once (BASE_ROOT_PATH . '/helper/file_upload.php');
 
 class member_infoControl extends mbMemberControl
 {
+
     public function __construct()
     {
         parent::__construct();
@@ -42,14 +43,13 @@ class member_infoControl extends mbMemberControl
 
     public function upavatarOp()
     {
-        $save_dir = BASE_ROOT_PATH."/data/upload/shop/";
-        $result = FileUpload::upload($save_dir, "avatar");
+        $result = FileUpload::upload(BASE_AVATAR_PATH);
 
         if (!$result["ret"]) {
             return self::outerr(errcode::ErrUploadFileFailed);
         }
 
-        $pic_url = str_replace(BASE_ROOT_PATH, $SRV_HOST, $result["file"]);
+        $pic_url = str_replace(BASE_AVATAR_PATH, '', $result["file"]);
         $member_id = $_SESSION['member_id'];
         if (isset($member_id)) {
             $ret = Model("member")->where(array('member_id' => $member_id))->update(array('member_avatar' => $pic_url));