<?php 
 | 
/** 
 | 
 * 文件上传示例 
 | 
 *  
 | 
 * 测试页面: http://localhost/Public/demo/upload.html 
 | 
 * 
 | 
 * @author dogstar 20170611 
 | 
 */ 
 | 
  
 | 
class Api_Examples_Upload extends PhalApi_Api { 
 | 
  
 | 
    public function getRules() { 
 | 
        return array( 
 | 
            'go' => array( 
 | 
                'file' => array( 
 | 
                    'name' => 'file',        // 客户端上传的文件字段 
 | 
                    'type' => 'file',  
 | 
                    'require' => true,  
 | 
                    'max' => 2097152,        // 最大允许上传2M = 2 * 1024 * 1024,  
 | 
                    'range' => array('image/jpeg', 'image/png'),  // 允许的文件格式 
 | 
                    'ext' => 'jpeg,jpg,png', // 允许的文件扩展名  
 | 
                    'desc' => '待上传的图片文件', 
 | 
                ), 
 | 
            ), 
 | 
        ); 
 | 
    }    
 | 
  
 | 
    /** 
 | 
     * 图片文件上传 
 | 
     * @desc 只能上传单个图片文件 
 | 
     * @return int code 操作状态码,0成功,1失败 
 | 
     * @return url string 成功上传时返回的图片URL 
 | 
     */ 
 | 
    public function go() { 
 | 
        $rs = array('code' => 0, 'url' => ''); 
 | 
  
 | 
        $tmpName = $this->file['tmp_name']; 
 | 
  
 | 
        $name = md5($this->file['name']); 
 | 
        $ext = strrchr($this->file['name'], '.'); 
 | 
        $uploadFolder = sprintf('%s/Public/upload/', API_ROOT); 
 | 
        if (!is_dir($uploadFolder)) { 
 | 
            mkdir($uploadFolder, 0777); 
 | 
        } 
 | 
  
 | 
        $imgPath = $uploadFolder .  $name . $ext; 
 | 
        if (move_uploaded_file($tmpName, $imgPath)) { 
 | 
            $rs['code'] = 1; 
 | 
            $rs['url'] = sprintf('http://%s/upload/%s%s', $_SERVER['SERVER_NAME'], $name, $ext); 
 | 
        } 
 | 
  
 | 
        return $rs; 
 | 
    } 
 | 
} 
 |