エレメントアバターアップロード練習

エレメントアバターアップロード練習

この記事は、Element公式サイトとQiniu Cloud公式サイトを使用しています。

element-ui 公式サイト: https://element.eleme.io/#/zh-CN

Qiniu Cloud公式サイト:https://www.qiniu.com/

1. Qiniu Cloudに登録してログインした後、本名を認証する必要があります。

ここに画像の説明を挿入

2. オブジェクトストレージに入った後、スペース管理に入る

3. 新しいスペースを作成する

ここに画像の説明を挿入

CDNテストドメイン名はここから取得できます

Python SDKは開発者センターで閲覧できます

Qiniu Cloudを使用するには、インストールする必要があります

pip インストール qiniu

カプセル化にはカプセル化の考え方を使用します

文件名:comm.py

# Qiniu Cloud から qiniu をインポート Auth

# アクセスキーとシークレットキーを入力する必要があります
access_key = 'アクセスキー'
secret_key = '秘密鍵'

qn_token()を定義します:
    #認証オブジェクトを構築 q = Auth(access_key, secret_key)
    # アップロードするスペースの名前 bucket_name = 'name'
    # アップロードトークンを生成する
    トークン = q.upload_token(バケット名)
    トークンを返す

アップロードされたインターフェースを取得する

# パッケージ化されたトークンをインポートする
utils.comm から qn_token をインポート

#Qiniu Cloud はトークン インターフェース クラス GetQnToken(APIView) を取得します。
    def get(self, request):
        トークン = qn_token()
        レスポンスを返す({'code':200,'token':token})

ルーティングあり

django.urls インポートパスから
から。インポートビュー 


urlパターン = [
    パス('gettoken/'、views.GetQnToken.as_view())
]

Vueで要素をダウンロードしたら、コンポーネントを使用できます

ユーザーアバターのアップロード

<テンプレート>
    <div>
        <!-- action は必須パラメータです。アップロード アドレスは Qiniu Cloud: http://up-z1.qiniu.com/ です-->
        <!-- データのアップロード時に含まれる追加パラメータ -->
        <!-- on-success ファイルが正常にアップロードされたときにフックします-->
        <!-- before-upload は、ファイルをアップロードする前のフックです。パラメータはアップロードされたファイルです。false が返されるか、Promise が返されて拒否された場合、アップロードは停止されます。 -->
        <el-アップロード
            クラス="アバターアップローダー"
            アクション="http://up-z1.qiniu.com/"  
            :ファイルリストを表示="false"
            :on-success="アバターハンドル成功"
            :before-upload="アバターをアップロードする前"
            :data='投稿データ'>
            <img v-if="imageUrl" :src="imageUrl" class="アバター">
            <i v-else class="el-icon-plus アバターアップローダーアイコン"></i>
        </el-アップロード>
    </div>
</テンプレート>

<スクリプト>
'axios' から axios をインポートします
エクスポートデフォルト{
    データ() {
        戻る {
            画像URL: ''、
            投稿データ:{
                // アップロード時には添付のトークンを持参する必要があります
                トークン:''
            }
        }
    },
    メソッド: {
        // Qiniu Cloud トークンを取得する
        トークンを取得する(){
            this.axios.get('sadmin/gettoken/').then(res=>{
                コンソールログ(res.data)
                this.postData.token = res.data.token
            })
        },
        //ファイルのアップロード成功のためのフック handleAvatarSuccess(res, file) {
            this.imageUrl = 'cdn テストドメイン名' + res.key;
            console.log(この画像URL)
        },
        beforeAvatarUpload(ファイル) {
            const isJPG = file.type === 'image/jpeg';
            定数isLt2M = ファイルサイズ / 1024 / 1024 < 2;

            もし(!isJPG) {
            this.$message.error('アップロードできるアバター画像は JPG 形式のみです!');
            }
            もし (!isLt2M) {
            this.$message.error('アップロードされたアバター画像のサイズは 2MB を超えることはできません!');
            }
            isJPG && isLt2M; を返します。
        }
    },
    作成された() {
        this.getToken()
    }
}
</スクリプト>

<スタイルスコープ>
.アバターアップローダー .el-アップロード {
    境界線: 1px 破線 #d9d9d9;
    境界線の半径: 6px;
    カーソル: ポインタ;
    位置: 相対的;
    オーバーフロー: 非表示;
  }
  .avatar-uploader .el-upload:hover {
    境界線の色: #409EFF;
  }
  .アバターアップローダーアイコン {
    フォントサイズ: 28px;
    色: #8c939d;
    幅: 178ピクセル;
    高さ: 178px;
    行の高さ: 178px;
    テキスト配置: 中央;
  }
  .アバター{
    幅: 178ピクセル;
    高さ: 178px;
    表示: ブロック;
  }
</スタイル>

**Qiniu Cloud ストレージオブジェクトの地域対応表**
**Qiniuの保管エリア表**

| **ストレージ領域** | **リージョン コード** | クライアント アップロード アドレス| **サーバー アップロード アドレス** |
| ------------ | ------------ | --------------------------------- | ----------------------------- |
| 中国東部 | ECN | `http(s)://upload.qiniup.com` | `http(s)://up.qiniup.com` |
| 北中国 | NCN | `http(s)://upload-z1.qiniup.com` | `http(s)://up-z1.qiniup.com` |
| 中国南部 | SCN | `http(s)://upload-z2.qiniup.com` | `http(s)://up-z2.qiniup.com` |
| 北米 | NA | `http(s)://upload-na0.qiniup.com` | `http(s)://up-na0.qiniup.com` |

Elementアバターアップロードの実践的な応用に関するこの記事はこれで終わりです。Elementアバターアップロードの関連コンテンツについては、123WORDPRESS.COMの以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも123WORDPRESS.COMを応援していただければ幸いです。

以下もご興味があるかもしれません:
  • vue.js+elementUI は、左右の矢印をクリックしてアバターを切り替える機能を実現します(カルーセル画像の効果に似ています)

<<:  MySQL 同時実行制御の原則に関する知識ポイント

>>:  Linuxコマンドに基づいてフォルダー内の特定のファイルパスを抽出します

推薦する

MySql の null 関数の使用の共有

MySql の null に関する関数IFNULL ISNULL NULLIF IFNULL使用法:...

Mysql 5.7.17 をインストールした後、MySQL にログインするチュートリアル

mysql-5.7.17 のインストールについては記事の下部で紹介されているので、参考にしてください...

MySQL におけるデータベース間関連クエリメソッド

ビジネスシナリオ: 異なるデータベース内のテーブルをクエリするたとえば、関連付けられるテーブルは、マ...

MySQLデータベースのマスタースレーブレプリケーションの原理と機能の分析

目次1. データベースのマスター/スレーブ分類: 2. MySQL マスタースレーブの紹介3. マス...

CSS ボーダーは四隅の実装コードを追加します

1.html <div class="ログインボディ"> <...

静的ページと動的ページの実行メカニズムの説明

1. 静的ページとは、Web ページ内に HTML タグのみが含まれるページです。WEB 開発者がこ...

nginx.conf のルートディレクトリ設定の詳細な説明

nginx.conf を構成するときには常に何らかの問題が発生します。ここでは、よくある問題とその解...

開発者とオペレーターが注目すべき Linux デバッグ ツール [推奨]

システム パフォーマンスの専門家である Brendan D. Gregg 氏は、LinuxCon N...

HTMLの行間設定方法と問題点

<p></p> の行間隔を設定するには、style="line-h...

yum 経由で CentOS に PHP をインストールするチュートリアル

まず、yumを使ってCentOSにPHPをインストールする方法を紹介します。 1. PHPのyumソ...

MySQL インデックス プッシュダウン (ICP) の簡単な理解と例

序文Index Condition Pushdown (ICP) は、MySQL 5.6 の新機能で...

簡単な計算機を実装する小さなプログラム

この記事の例では、簡単な計算機を実装するための小さなプログラムの具体的なコードを参考までに共有してい...

Zookeeperスタンドアロン環境とクラスタ環境の構築

1. 単一マシン環境の構築# 1.1 ダウンロードZookeeper の対応するバージョンをダウンロ...

SQL Server 2019 Always On クラスターの Docker デプロイメントの実装

目次Docker デプロイメント Always on クラスターDockerをインストールする建築関...

Mysql ALTER TABLE はフィールドを追加するときにテーブルをロックしますか?

目次MySQL 5.6以前MySQL 5.6以降要約する知らせMySQL 5.6以前更新手順元のテー...