2015-05-30 15:51:03 9311次浏览 1条回答 0 悬赏 12 金钱

restful 接口 上传图片怎么实现 用curl 怎么测试?

  • 回答于 2015-05-31 18:35 举报

    水平不行,不过功能实现了。 将就看,如果有更好的实现方法,更安全的代码,还请分享。

    
    <?php
    
    /*
     * REST文件上传
     * 
     * 
     *  @项目 com.xxx.www
     *  @作者 Mx
     *  @编码 UTF-8 
     *  @日期 2015-5-16 16:41:49 
     */
    
    namespace api\controllers;
    
    use yii;
    
    /**
     * 类名称: uploadcontroller
     * 类说明:
     */
    class UploadController extends \yii\rest\ActiveController {
    
        public $documentPath = 'documents/';//上传路径
        public $modelClass = 'common\models\xxx';//我不会不继承\yii\rest\ActiveController的方式实现这里的方法,所以给了一个没有意义的model,不过下方通过 注销自带方法 去除了 本REST中队 xxx的功能,所以除非yii2自身漏洞,否则对于xxx不会有问题
    
        public function actions() {
            $actions = parent::actions();
    // 注销系统自带的实现方法
            unset($actions['index'], $actions['update'], $actions['create'], $actions['delete'], $actions['view']);
            return $actions;
        }
    
        public function actionUpdate() {
            $postdata = fopen($_FILES['data']['tmp_name'], "r");
            /* Get file extension */
            $extension = substr($_FILES['data']['name'], strrpos($_FILES['data']['name'], '.'));
            /* Generate unique name */
            $filename = $this->documentPath . uniqid() . $extension;
            /* Open a file for writing */
            $fp = fopen($filename, "w");
            /* Read the data 1 KB at a time
              and write to the file */
            while ($data = fread($postdata, 1024))
                fwrite($fp, $data);
            /* Close the streams */
            fclose($fp);
            fclose($postdata);
            /* the result object that is sent to client */
            $result['filename'] = $filename;
            $result['document'] = $_FILES['data']['name'];
            $result['create_time'] = date("Y-m-d H:i:s");
            return $result;
        }
    
    }
    
    
    
    2 条回复
    回复于 2015-06-01 09:07 回复

    一会测试一下 ,辛苦了。

    回复于 2017-02-09 16:45 回复

    测试成功了吗大神 求指导QQ 2448640323

您需要登录后才可以回答。登录 | 立即注册
长春子
见习主管

长春子

注册时间:2013-12-23
最后登录:2015-11-02
在线时长:10小时37分
  • 粉丝8
  • 金钱318
  • 威望0
  • 积分418

热门问题