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

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

この記事は、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 でのキープアライブコンポーネントの使用例

問題の説明(キープアライブとは何か)キープアライブ 名前の通り、アクティブな状態を維持します。誰が活...

Linux環境にJDK1.8をインストールする

目次1. インストール環境2. インストール手順ステップ1: インストールパッケージをダウンロードす...

MySQL で数千万のテストデータを含むテストデータベースを作成する方法

場合によっては、MySQL が公式に提供しているテスト ライブラリに基づいてテスト データを作成し、...

Vue-cliはプロジェクトを作成し、プロジェクト構造を分析します

目次1. ディレクトリを入力してプロジェクトを作成する2. 必要な設定項目を選択します2.1 Vue...

ミニプログラムはミニプログラムクラウドを使用してWeChatの支払い機能を実装します

目次1. WeChat Payを開く1.1 アフィリエイト加盟店番号1.2 加盟店番号を追加する1....

ffmpeg コマンドラインを使用してビデオを変換するためのサンプルコード

この記事の本文を始める前に、まず ffmpeg プログラムをインストールする必要があります (Lin...

MySQL 5.7.16 無料インストール版のインストールと設定方法のグラフィックチュートリアル

この記事ではMySQL 5.7.16のインストールと設定方法を記録します。具体的な内容は以下のとおり...

Windows でのシンプルな Mysql バックアップ BAT スクリプトの共有

序文この記事では、Windows で Mysql をバックアップするための簡単な BAT スクリプト...

Raspberry Pi 4b ubuntu19 サーバーへの docker-ce のインストール手順

Raspberry Pi モデルは 4b、1G RAM です。システムはubuntu19.10サーバ...

CSS で垂直方向の中央揃えを実装するいくつかの方法の概要

フロントエンドのレイアウト プロセスでは、水平方向の中央揃えを実現するのは比較的簡単で、通常は ma...

ウェブサイトのフッター沈下現象に対する3つの解決策を詳しく解説

背景多くのウェブサイトのデザインは、一般的にコンテンツ+フッターの2つの部分で構成されています。コン...

Dockerfile テキストファイルの使用例の分析

Dockerfile は、イメージをビルドするために使用されるテキスト ファイルです。テキスト コン...

React 入門レベルの詳細なメモ

目次1. Reactの基本的な理解1. はじめに2. Reactの特徴3. Reactが効率的な理由...

MySQL 匿名ログインでデータベースを作成できない問題の解決方法

よくある質問ユーザー ''@'localhost' によるデータベー...