Yii+upload實現(xiàn)AJAX上傳圖片的方法
來源:易賢網(wǎng) 閱讀:1066 次 日期:2016-08-15 14:21:37
溫馨提示:易賢網(wǎng)小編為您整理了“Yii+upload實現(xiàn)AJAX上傳圖片的方法”,方便廣大網(wǎng)友查閱!

本文實例講述了Yii+upload實現(xiàn)AJAX上傳圖片的方法。分享給大家供大家參考,具體如下:

控制器代碼:

/**

* get ajax uploaded files.

*/

public function actionGetAjax(){

    $model=new Attachment();//加載附件模型

    $tmpFile  = CUploadedFile::getInstanceByName('image');//讀取圖像上傳域,并使用系統(tǒng)上傳組件上傳

    $Directroy = Yii::app()->params['uploadPath'];//讀取上傳配置文件,我的配置是/uploads

    //創(chuàng)建文件存放路徑

    $y     = date('Y');

    $m     = date('m');

    $d     = date('d');

    $Directroy = $Directroy."/";

    $pathd = $Directroy.$y."/".$m."/".$d."/";

    Tool::makedir(dirname(Yii::app()->BasePath).$pathd); //創(chuàng)建文件夾,此處一定要加上dirname(Yii::app()->BasePath)不然可能會出錯;

    if(is_object($tmpFile) && get_class($tmpFile)==='CUploadedFile'){

      $filename        = time().rand(0,9);

      $ext          = $tmpFile->extensionName;//上傳文件的擴展名

      if($ext=='jpg'||$ext=='gif'||$ext=='png'){

          $big          = $pathd . $filename . '_600.' . $ext; //310縮略圖

        $small         = $pathd . $filename . '_310.' . $ext; //310縮略圖

        $thumb         = $pathd . $filename . '_100.' . $ext; //100縮略圖

        $model->zat_thumb    = $thumb; //縮略圖

      }

      $uploadfile       = $pathd . $filename . '.' . $ext;   //保存的路徑

      $model->zat_url     = $pathd . $filename . '.' . $ext;   //重新賦值

      $model->zat_file_name  = $filename . '.' . $ext;        //文件名稱

      $model->zat_title    = $tmpFile->name;            //文件標題

      $model->zat_file_type  = $tmpFile->type;            //文件類型

      $model->zat_file_size  = $tmpFile->size;            //文件大小

      $model->zat_image    = 2;

      $model->zat_ip     = Yii::app()->request->userHostAddress; //上傳IP

      //print_r($uploadfile);

    }

    if($model->save()){

      $tmpFile->saveAs(dirname(Yii::app()->BasePath).$uploadfile);//保存到服務(wù)器

      if($ext=='jpg'||$ext=='gif'||$ext=='png'){

        $img = Yii::app()->image->load(dirname(Yii::app()->BasePath).$uploadfile); //使用image-Kohana圖像處理庫擴展

        $img->resize(600,600)->quality(85);

        $img->save(dirname(Yii::app()->BasePath).$big);//生成600縮略圖

        $img->resize(310,310)->quality(85);

        $img->save(dirname(Yii::app()->BasePath).$small);//生成310縮略圖

        $img->resize(100,100)->quality(85);

        $img->save(dirname(Yii::app()->BasePath).$thumb);//生成100縮略圖

      }

      if($ext=='jpg'||$ext=='gif'||$ext=='png'){

        $str = json_encode(

          array(

            'upfile'=>array(

              'zat_id' => Yii::app()->db->getLastInsertID(), //取插ID

              'file' => $uploadfile,//原圖

              'small' => $small,//310縮略圖

              'thumb' => $thumb,//100縮略圖

            )

          )

        );

      }else{

        $str = json_encode(

          array(

            'upfile'=>array(

              'zat_id' => Yii::app()->db->getLastInsertID(),

              'file' => $uploadfile,

            )

          )

        );

      }

      echo $str;

    }

}

VIEW代碼:

<input id="fileupload" type="file" name="image" multiple>

<script src="<?php echo Yii::app()->baseUrl;?>/js/jquery.ui.widget.js"></script>

<script src="<?php echo Yii::app()->baseUrl;?>/js/jquery.iframe-transport.js"></script>

<script src="<?php echo Yii::app()->baseUrl;?>/js/jquery.fileupload.js"></script>

<script>

$(function () {

  $('#fileupload').fileupload({

    dataType: 'json',

    url: '/Attachment/GetAjax',

    success: function (json) {

        $('#MemType_zmt_pic').attr('value',json.upfile.file);

        $("#images").attr('src',json.upfile.file);

    }

  });

});

</script>

希望本文所述對大家基于Yii框架的PHP程序設(shè)計有所幫助。

更多信息請查看網(wǎng)絡(luò)編程
易賢網(wǎng)手機網(wǎng)站地址:Yii+upload實現(xiàn)AJAX上傳圖片的方法
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 加入群交流 | 手機站點 | 投訴建議
工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網(wǎng)安備53010202001879號 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號
聯(lián)系電話:0871-65317125(9:00—18:00) 獲取招聘考試信息及咨詢關(guān)注公眾號:hfpxwx
咨詢QQ:526150442(9:00—18:00)版權(quán)所有:易賢網(wǎng)