久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

yii2.0整合阿里云oss刪除單個文件的方法

這篇文章主要介紹了yii2.0整合阿里云oss刪除單個文件的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下

主要思路,在controller里邊通過獲得要刪除的文件fileid,把fileid傳遞給model的deletefile方法進行處理,并返回處理結果。
在deletefile方法里邊,先根據id找到對應的文件信息,然后刪除數據里邊的記錄和阿里云oss里邊的文件和本地的文件。

主要步驟如下:

1 首先是構建一個view視圖,或者寫一個ajax發送請求,此處代碼略(讓前端去寫吧)。

2 在控制器里邊接收參數,并轉交給model。控制器UploadController.php里邊的代碼參考如下:

/**
   * 根據fileid刪除文件
   * @return mixed 刪除是否成功
   */
  public function actionDeletefile()
  {
    $res['error'] = 1;     // 準備返回數據
    Yii::$app->response->format = Response::FORMAT_JSON;  // 設置返回格式
    if (Yii::$app->request->isPost){            // 如果是post請求
      $postdata = Yii::$app->request->post('fileid',0);  // 從post里邊獲取文件id

      if ($postdata==0){                 // 如果文件id為0
        $res['errmsg'] = '刪除失敗,請重試';        // 準備返回數據
        return $res;                  // 返回結果
      }
      $model = new UploadForm();             // 實例化model
      $delres = $model->deletefile($postdata);      // 根據id調用deletefile方法

      if ($delres['error']==0){              // 如果刪除成功
        $res['error'] = 0;               // 準備返回信息
      } else {
        $res['errmsg'] = $delres['errmsg'];       // 如果刪除失敗,準備返回信息
      }

    } else {
      $res['errmsg'] = '非法請求';             // 主要考慮post請求,get請求請自行修改代碼
    }

    return $res;                      // 返回刪除結果
  }

3 當controller把文件id轉移給UploadForm.php以后,在deletefile方法里邊進行刪除。

   /**
   * 刪除阿里云oss里存儲的文件和數據庫里邊保存到文件上傳信息
   * @param $fileid  文件表里邊的主鍵id
   * @return boolean  刪除是否成功
   */
  public function deletefile($fileid)
  {
    $res['error'] = 1;  // 1表示默認有錯誤。
    $fileinfo = Yii::$app->db->createCommand('select ossfile,filePath,userid from file where id=:id')->bindParam(':id', $fileid)->queryOne();
    // 根據主鍵從數據庫里邊查詢文件的信息,至少要一個服務器文件的完整路徑(用來刪除服務器文件)和一個ossfile的名稱(刪除阿里云oss里邊的文件)

    if (count($fileinfo) > 0) {           // 如果找到了文件的記錄

      // 這里邊的驗證可以更豐富一些,比如驗證用戶是否有權限刪除該文件,文件是否屬于該用戶等等

      $ossfile = $fileinfo['ossfile'];      // 獲取ossfile
      $realfile = $fileinfo['filePath'];     // 獲取服務器上的文件
      $owner = $fileinfo['userid'];        // 獲取上傳圖片用戶的id
      $operator = Yii::$app->user->id;      // 獲取刪除圖片的用戶

      if ($owner != $operator) {         // 如果刪除圖片的用戶不是上傳的用戶,報錯并返回
        $res['errmsg'] = '您刪除的圖片不存在';
        return $res;
      }

      $trans = Yii::$app->db->beginTransaction(); // 開啟事務
      try {
        $delstatus = Yii::$app->db->createCommand()->delete('file', 'id = ' . $fileid)->execute();
        //刪除數據庫里邊的記錄

        if ($delstatus) {            // 如果刪除成功
          if (Yii::$app->Aliyunoss->delete($ossfile)) { //刪除阿里云oss上的文件
            @unlink($realfile);       // 刪除服務器上的文件
            $res['error'] = 0;       // 準備返回信息
            $trans->commit();        // 提交事務
          }
        }
        $trans->rollBack();           // 刪除失敗,事務回滾
      } catch (Exception $e) {          // 發生異常
        $res['errmsg'] = '刪除失敗';       // 準備返回信息
        $trans->rollBack();           // 事務回滾
      }

    } else {
      $res['errmsg'] = '圖片不存在,請重試';      // 圖片不存在
    }

    return $res;                   // 返回刪除結果
  }

阿里云oss文件的上傳和刪除已經寫完了。當初自己也是遇到了很多問題,發現從網上找,竟然找不到理想的參考代碼。所以才寫了這幾篇文章。希望對大家的開發有所幫助。畢竟水平有限,如果遇到考慮不周或者代碼有誤的地方,請給我留言,小編會及時回復大家的。在此也非常感謝大家對網站的支持!

【網站聲明】本站除付費源碼經過測試外,其他素材未做測試,不保證完整性,網站上部分源碼僅限學習交流,請勿用于商業用途。如損害你的權益請聯系客服QQ:2655101040 給予處理,謝謝支持。

相關文檔推薦

Yii2的rule用于對模型屬性進行驗證,scenario用戶定義不同場景下需要驗證的模型,下面這篇文章主要給大家介紹了關于Yii2中場景(scenario)和驗證規則(rule)的相關資料,文中通過示例代碼介
這篇文章主要給大家介紹了關于MixPHP、Yii和CodeIgniter的并發壓力測試的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面
本篇文章主要介紹了淺談使用 Yii2 AssetBundle 中 $publishOptions 的正確姿勢,具有一定的參考價值,感興趣的小伙伴們可以參考一下
這篇文章主要介紹了Yii2之組件的注冊與創建的實現方法,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
這篇文章主要介紹了Yii2使用駝峰命名的形式訪問控制器的實現方法,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
下面小編就為大家帶來一篇Yii2使用駝峰命名的形式訪問控制器(實例講解)。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
主站蜘蛛池模板: 日韩精品免费在线观看 | 欧美成年黄网站色视频 | 免费a v网站 | 日本免费黄色一级片 | 天堂在线1| 黄色一级免费 | 国产乱码精品一区二区三区五月婷 | 国产在线小视频 | 久久国产精品精品国产色婷婷 | 一区二区三区视频在线观看 | 一区二区三区四区五区在线视频 | 精品国产网 | 黄色毛片一级 | 成人免费一区二区三区视频网站 | 999在线精品 | 国外成人免费视频 | 亚洲一区欧美 | 成人在线播放网站 | 亚洲最新在线 | 少妇特黄a一区二区三区88av | 伊人春色成人网 | 黄色毛片免费视频 | 午夜在线视频 | 久久精品国产一区二区电影 | 欧美一级在线 | 欧美精品乱码99久久影院 | 伊人99| 免费国产精品久久久久久 | 韩日精品在线观看 | 精品在线一区 | 国产精品久久久久久久久久久久冷 | h视频免费看 | 亚洲人人| 亚洲视频一区在线观看 | 日韩成人中文字幕 | 成人午夜免费视频 | 北条麻妃av一区二区三区 | 欧美电影在线 | 免费激情网站 | 亚洲精品成人av久久 | 国产成人99久久亚洲综合精品 |