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

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

この記事は、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コマンドに基づいてフォルダー内の特定のファイルパスを抽出します

推薦する

Vue で SuperMap を使用する練習

目次序文関連資料Vue プロジェクトが 2 次元ハイパーグラフを導入ハイパーグラフ 2D ケース引用...

ワンクリックで雨や雪のエフェクトを実現する ThingJS パーティクルエフェクト

目次1. パーティクルエフェクト2. シーンを読み込む3. さまざまな粒子効果の実現エンディング: ...

Javascriptはセキュリティ検証に整合性属性を使用します

目次1. スクリプトタグを使用してファイルをインポートする1. ローカルファイルをインポートする2....

MySQL でデータ復旧に binlog を使用する方法

序文最近、オンラインでデータが誤って操作されました。データベースが直接変更されたため、それを回復する...

LinuxでifconfigとaddrがIPアドレスを表示できない問題を解決する

1. 仮想マシンにLinuxシステムをインストールし、仮想マシンを起動し、rootとパスワードを入力...

一般的な MySQL 関数の例の概要 [集計関数、文字列、数値、時刻と日付の処理など]

この記事では、よく使用される MySQL 関数について説明します。ご参考までに、詳細は以下の通りです...

Linuxテキスト処理ツールの詳細な説明

1. /etc/passwdファイル内のデフォルトシェルが/sbin/nologinではないユーザー...

Dockerfile を使用して nginx イメージを構築する例

Dockerfile の紹介Docker は、Dockerfile の内容を読み取ってイメージを自動...

MySQL での order by の使用に関する詳細

目次1. はじめに2. 本文2.1 単一列のソート2.2 複数の列を並べ替える2.3 ソート方法2....

Docker で Zookeeper をインストールする (スタンドアロンおよびクラスター)

Docker を起動したら、利用できるオプションを見てみましょう。 公式のものがある場合は、もちろ...

MySQLクエリキャッシュの簡単な使い方の詳細な説明

目次1. クエリキャッシュの実装プロセス2. クエリキャッシュを構成する3. クエリキャッシュを有効...

Sitemesh チュートリアル - ページ装飾技術の原理と応用

1. 基本概念1. Sitemeshはページ装飾技術です。 1 : フィルターを通してページアクセス...

シームレスなカルーセル効果を実現するネイティブ js

参考までに、ネイティブjsでカルーセル効果(シームレススクロール)を実現しています。具体的な内容は以...

MySQL 8.0.18 インストール構成の最適化チュートリアル

MySQLのインストール、設定、最適化は参考用です。具体的な内容は次のとおりです。 MySQL ダウ...