序文ヒント:以下はこの記事の主な内容です。以下のケースを参考にしてください。 1. オブジェクトストレージCloud Object Storage (COS) は、Tencent Cloud が提供する、大量のファイルを保存するための分散ストレージ サービスです。高いスケーラビリティ、低コスト、信頼性、セキュリティなどの利点があります。ユーザーは、コンソール、API、SDK、ツールなどのさまざまな方法を通じて、COS に簡単かつ迅速にアクセスし、複数の形式のファイルをアップロード、ダウンロード、管理し、大量のデータの保存と管理を実現できます。 2. Tencent Cloud Cosを構成する1. ライブラリをインポートする コードは次のとおりです(例): 最初のステップは、Tencent Cloud開発者アカウントを取得することです 実名認証 次にQRコードをスキャンして認証します 無料製品を入手するにはここをクリックしてください オブジェクトストレージCOSを選択 この時点でアカウント部分は完了です。次に、写真を保存するためのバケットを作成する必要があります。オブジェクトストレージコンソールにログインし、バケットを作成します。バケットの権限をパブリック読み取りとプライベート書き込みに設定する バケットを作成する CORSルールの設定 AllowHeader を * に設定する必要があります。 3. 新しいファイルアップロードコンポーネントを作成するJavaScript SDKのインストール npm i cos-js-sdk-v5 --save 新しいアップロード画像コンポーネント src/components/ImageUpload/index.vue を作成します。 アップロードコンポーネントには、要素のel-uploadコンポーネントを使用し、フォトウォールモードlisttype="picture-card"を採用することができます。 <テンプレート> <div> <el-アップロード リストタイプ="絵カード" :limit="4" アクション="#" :file-list="ファイルリスト" :on-preview="プレビュー" :http-request="アップロード" :on-change="変更" :before-upload="アップロード前" :accept="typeList" :on-remove="ハンドル削除" > <i class="el-icon-plus" /> </el-アップロード> <el-進捗状況 v-if="表示パーセント" スタイル="幅: 180px" :percentage="パーセント" /> <el-dialog title="画像" :visible.sync="showDialog"> <img :src="imgUrl" style="width: 100%" alt="" /> </el-ダイアログ> </div> </テンプレート> <スクリプト> 'cos-js-sdk-v5' から COS をインポートします。 定数cos = 新しいCOS({ SecretId: 'xxx', // シークレット ID SecretKey: 'xxx' // 秘密鍵 }) // インスタンス化されたパッケージはアップロード機能があり、アカウントのストレージバケットにアップロードできます export default { データ() { 戻る { fileList: [], // 画像アドレスを配列に設定する showDialog: false, // ポップアップレイヤーの表示を制御する imgUrl: '', 現在のイメージUid: null、 タイプリスト: 'image/*', showPercent: false, // 進行状況バーを表示するかどうか percent: 0 // アップロードの進行状況} }, メソッド: { プレビュー(ファイル) { this.imgUrl = ファイル.url this.showDialog = true }, beforeUpload(ファイル) { // アップロードできるファイルの種類 const types = ['image/jpeg', 'image/gif', 'image/bmp', 'image/png'] if (!types.includes(file.type)) { this.$message.error('アップロードできる画像は JPG、GIF、BMP、または PNG 形式のみです!') false を返す // false を返すと、画像はアップロードされません} 定数maxSize = 1024 * 1024 ファイルサイズが最大サイズより大きい場合 this.$message.error('画像の最大サイズは 1M を超えることはできません') 偽を返す } this.currentImageUid = ファイル.uid this.showPercent = true 真を返す }, アップロード(パラメータ) { // console.log(パラメータ.ファイル) if (params.file) { // アップロード操作を実行する cos.putObject({ Bucket: 'xxx', // ストレージバケット Region: 'ap-nanjing', // リージョンキー: params.file.name, // ファイル名 Body: params.file, // アップロードするファイルオブジェクト StorageClass: 'STANDARD', // アップロードモードタイプはデフォルトで標準モードに直接設定できます onProgress: (progressData) => { this.percent = 進捗データ.percent * 100 } }, (エラー、データ) => { // データが返された後の処理方法 if (err) return this.fileList = this.fileList.map(item => { if (item.uid === this.currentImageUid) { 戻り値: { url: 'http://' + data.Location, name: item.name } } 返品商品 }) // コンソール.log(this.fileList) }) } }, handleRemove(ファイル、ファイルリスト) { this.fileList = this.fileList.filter(item => item.uid !== file.uid) // console.log(ファイル) cos.deleteObject({ バケット: 'xxx'、/* 必須*/ 地域: 'ap-nanjing'、/* バケットが配置されている地域、必須フィールド*/ キー: file.name /* 必須*/ }, (エラー、データ) => { // console.log(エラー || データ) }) }, 変更(ファイル、ファイルリスト) { this.fileList = ファイルリスト } } } </スクリプト> 詳細ページではコンポーネントを紹介します <テンプレート> <div class="アプリコンテナ"> <el-card> <el-タブ> <el-tab-pane label="個人情報"> <ユーザー情報 /> </el-tab-pane> <el-tab-pane label="パスワードのリセット"> <!-- フォームを配置します --> <el-フォーム ラベル幅="120px" スタイル="margin-left: 120px; margin-top: 30px" > <el-form-item label="パスワード:"> <el-input style="width: 300px" type="password" /> </el-form-item> <el-form-item label="パスワードの確認:"> <el-input style="width: 300px" type="password" /> </el-form-item> <el-form-item> <el-button type="primary">リセット</el-button> </el-form-item> </el-form> </el-tab-pane> <el-tab-pane label="部門情報"> <部門 /> </el-tab-pane> <el-tab-pane label="アバターを選択"> <画像アップロード /> </el-tab-pane> </el-tabs> </el-card> </div> </テンプレート> <スクリプト> './component/Userinfo' から userInfo をインポートします。 './component/Department' から部門をインポートします。 '@/components/ImagUpload' から imageUpload をインポートします。 エクスポートデフォルト({ コンポーネント: 'ユーザー情報': ユーザー情報、 '部門': 部門、 '画像アップロード': 画像のアップロード }, // メソッド: { アップロード(e) { 定数ファイル = e.target.files[0] const リーダー = 新しい FileReader() reader.readAsDataURL(ファイル) reader.onload = 非同期関数 (e) { アップロードを待つ({ ファイル: { 元の名前: '11.jpg', ファイル: e.target.result } }) } } } }) </スクリプト> 詳細ページのルートを作成します。現在の「ビュー」はセカンダリナビゲーションジャンプなので、ルートは次のように記述する必要があります。 '@/layout' からレイアウトをインポートします エクスポートデフォルト{ パス: '/user', コンポーネント: レイアウト、 子供たち: [{ パス: 'インデックス', コンポーネント: () => import('@/views/user/index'), 名前: 'ユーザー', メタ: { タイトル:「ユーザー管理」 アイコン: 'アカウント' } }, { パス: '詳細', コンポーネント: () => import('@/views/user/detail'), 名前: '詳細', 非表示: true、 メタ: { タイトル: 「ユーザーの詳細」 アイコン: 'アカウント' } }] } レンダリング クリックして表示: アバターを選択してください: クラウド ストレージにアップロードされているかどうかを確認します。 これで、vue.js クラウド ストレージを使用して画像アップロード機能を実装する方法についての説明は終わりです。vue.js 画像アップロードに関するその他の関連コンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: Ubuntu環境でxdebugをコンパイルしてインストールする方法
>>: MySQL 8.0.12 のインストールと使用方法のチュートリアル
目次約束とは何ですか?拒否の使用法キャッチの使い方すべての使用法レースの使用約束とは何ですか? Pr...
Ubuntu で nvidia グラフィック カード ドライバーをインストールします。同じ方法で ...
目次1. v-text テキストレンダリング命令2. v-html 1. v-text テキストレン...
以前、https://www.jb51.net/article/205922.htm で、Docke...
VUE は vue-seamless-scroll を使用して、自動的にスクロールしていいねします。...
新しいバージョンの設定インターフェースを作る際に、vueフレームワークを使用して実装しました。ページ...
Tencent QQのホームページがリニューアルされ、Webフロントエンド開発がますます注目を集めて...
目次序文バックグラウンドデータの結合フロントエンドデータ表示ページ効果表示Avue.js は、既存の...
この記事では、jQuery Canvasの描画画像検証コードの具体的なコードを例として紹介します。具...
MySQL 8.0.3がリリースされます。新機能を見てみましょうMySQL 8.0.3 は RC ...
特定の期間内に特定の IP へのアクセス回数を制限する方法は、特に悪意のある DDOS 攻撃に直面し...
折りたたみ表示の複数行テキストコンポーネント複数行のテキスト コンポーネントを折りたたんで表示し、展...
プライベート Docker レジストリのインストールとデプロイは、Docker テクノロジーを導入、...
著者: Guan Changlong は、Aikesheng の配送サービス部門の DBA です。主...
1. Nginx ロードバランシングの実装原理1. Nginxはリバースプロキシを通じて負荷分散を実...