ホームページ ウェブフロントエンド uni-app Uniappの写真のアップロードと削除の操作について話しましょう

Uniappの写真のアップロードと削除の操作について話しましょう

Apr 18, 2023 pm 02:09 PM

近年、モバイル アプリケーション開発の分野で、Uniapp が最初の選択肢となる開発者がますます増えています。 Uniappは、開発者がマルチ端末アプリケーションを開発できる新しい開発フレームワークであり、エンジニアの開発効率を向上させます。この記事では、Uniapp の写真のアップロードと削除の操作について詳しく紹介し、説明します。

1. 画像アップロードの実装

カメラと画像の選択は一般的な機能の 1 つであり、Uniapp はカメラ、フォト アルバム、WeChat モーメント、オンライン ファイルなどを有効にするための豊富な API インターフェイスを提供します。画像を選択してアップロードするには複数の方法が可能です。以下では、Uniapp の API インターフェイスが画像アップロード機能を実装する方法を詳しく紹介します。

  1. 写真を選択してアップロード

Uniapp には、ファイルを非同期でアップロードし、uni-upload を通じて選択できる非常に使いやすいコンポーネント uni-upload が用意されています。画像アップロード機能。

まず、次のコードをフロントエンド ページに追加します。

<view>
   <uni-upload :upload-url="&#39;your_upload_url&#39;" :on-success="success" :on-fail="fail" @click="upload">
     <view class="button">上传图片</view>
   </uni-upload>
</view>
ログイン後にコピー

このコードでは、uni-upload コンポーネントを定義します。 url 属性は画像アップロードの URL アドレスで、on-successon-fail はアップロード成功と失敗のコールバック関数にそれぞれ対応します。 @clickこの属性は、クリック後にアップロード機能をトリガーします。

次に、Vue インスタンスで 2 つのコールバック関数

successfail を設定する必要があります。

methods: {
   success(res){
     console.log("上传成功");
   },
   fail(err){
     console.log("上传失败");
   },
   upload(){
     uni.chooseImage({
       sizeType: ['compressed'],
       sourceType: ['album', 'camera'],
       success: (res) => {
         const tempFilePaths = res.tempFilePaths;
         uni.uploadFile({
           url: this.uploadUrl,
           filePath: tempFilePaths[0],
           name: 'file',
           success: (res) => {
            this.success(res)
           },
           fail: (err) => {
            this.fail(err)
           }
         });
       }
     });
   }
}
ログイン後にコピー
このコードでは、まず There を定義します。は 2 つのコールバック関数、

successfail です。アップロードが成功または失敗すると、対応するコールバック関数が実行されます。 upload 関数では、uni.chooseImage メソッドを使用して画像を選択し、一時ファイルのパスを取得し、uni.uploadFile メソッドを使用してファイルをサーバーにアップロードします。 name 属性は、ファイルに対応するキー値、つまりサーバーで受信したファイルのパラメータ名を表します。

これは、Uniapp に写真を選択してアップロードする機能を実装します。

    画像をアップロードして返される結果を取得する
画像をアップロードするプロセスでは、アップロードが成功した後にバックエンドから返される結果を取得する必要があります。アップロード画像の URL アドレスまたはその他の画像アップロード情報を取得できます。

uni.uploadFile インターフェイスでは、アップロードが成功した後にバックエンドによって返される結果を受け取るためのパラメータを成功コールバック関数に追加します。変更されたコードは次のとおりです。

methods: {
   success(res){
     const data = res.data;
     console.log(data);
     console.log("上传成功");
   },
   fail(err){
     console.log("上传失败");
   },
   upload(){
     uni.chooseImage({
       sizeType: ['compressed'],
       sourceType: ['album', 'camera'],
       success: (res) => {
         const tempFilePaths = res.tempFilePaths;
         uni.uploadFile({
           url: this.uploadUrl,
           filePath: tempFilePaths[0],
           name: 'file',
           success: (res) => {
            this.success(res);
           },
           fail: (err) => {
            this.fail(err);
           }
         });
       }
     });
   }
}
ログイン後にコピー
上記のコードでは、

success でサーバーから返されたデータを出力します。

2. 画像削除の実装

私たちのアプリケーションでは、ストレージ容量を節約し、プログラムを最適化するという目的を達成するために、アップロードされた画像を削除する必要がある場合があります。Uniapp は多くの API インターフェイスを提供しますこの機能を実装するには。以下に 2 つの方法を示します。

    uni.removeSavedFile メソッドを使用して写真を削除します。
この方法では、アプリケーションで使用されている写真がダウンロードされるか、アプリケーションによって撮影されます。それ自体を削除するには、uni.removeSavedFile を使用してアプリケーション ディレクトリまたはメモリから写真を削除します。

最初に削除メソッドを定義します:

methods:{
  deleteImage(index) {
    const filePath = this.uploadList[index].filePath;
    uni.removeSavedFile({
      filePath: filePath,
      success(res) {
        console.log(res)
      },
      fail(err) {
        console.log(err)
      }
    });
  }
}
ログイン後にコピー
コンポーネントで削除メソッドを使用します:

<view v-for="(item,index) in uploadList" :key="index">
    <image :src="item.filePath" mode="aspectFit" style="width:50px;height:50px"></image>
    <view v-on:click="deleteImage(index)">删除</view>
</view>
ログイン後にコピー
このコードでは、リスト コンポーネントで v-for 命令を使用して、削除するイメージに関する情報を取得するには、

deleteImage メソッドを使用して、対応するファイルを削除します。

    サーバーへの削除リクエストの開始
このアプリケーションでは、サーバー上の画像を使用している場合、サーバーに削除リクエストを送信することで画像を削除できます。 。 写真。このメソッドと uni.removeSavedFile メソッドの使用の違いは、サーバーにリクエストを送信し、バックグラウンドで画像を削除する必要があることです。

削除メソッドの定義:

methods:{
  deleteImage(index) {
    const url = 'your_delete_url';
    const fileID = this.uploadList[index].url;
    uni.request({
      url: url,
      method: 'DELETE',
      data:{
        fileID:fileID,
        key:'value'  // 可以添加其他参数
      },
      success: (res) => {
        console.log(res);
      },
      fail: (err) => {
        console.log(err);
      }
    });
  }
}
ログイン後にコピー
このようにして、サーバーに削除リクエストを送信し、バックエンドがこのリクエストを受信すると、サーバー内の該当するデータを削除できます。

3. 概要

上記は、Uniapp で画像のアップロードと削除機能を実装する 2 つの方法です。実際のアプリケーションでは、実際のニーズに応じて選択して、プログラム内で完璧な画像のアップロードおよび削除機能を実現できます。同時に、使用中により優れたパフォーマンス手法を採用して、プログラムのパフォーマンスを向上させることもできます。

以上がUniappの写真のアップロードと削除の操作について話しましょうの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

UNIAPPアプリケーションで実行できるさまざまなタイプのテストは何ですか? UNIAPPアプリケーションで実行できるさまざまなタイプのテストは何ですか? Mar 27, 2025 pm 04:59 PM

この記事では、ユニット、統合、機能、UI/UX、パフォーマンス、クロスプラットフォーム、セキュリティテストなど、UNIAPPアプリケーションのさまざまなテストタイプについて説明します。また、クロスプラットフォームの互換性を確保し、JESのようなツールを推奨しています

Uniappアプリケーションパッケージのサイズをどのように削減できますか? Uniappアプリケーションパッケージのサイズをどのように削減できますか? Mar 27, 2025 pm 04:45 PM

この記事では、コードの最適化、リソース管理、コード分割や怠zyなロードなどの手法に焦点を当てたUniappパッケージサイズを削減する戦略について説明します。

UNIAPP開発に利用できるデバッグツールは何ですか? UNIAPP開発に利用できるデバッグツールは何ですか? Mar 27, 2025 pm 05:05 PM

この記事では、Hbuilderx、Wechat開発者ツール、Chrome Devtoolsなどのツールに焦点を当てたUniapp開発のためのデバッグツールとベストプラクティスについて説明します。

怠zyなロードを使用してパフォーマンスを向上させるにはどうすればよいですか? 怠zyなロードを使用してパフォーマンスを向上させるにはどうすればよいですか? Mar 27, 2025 pm 04:47 PM

怠zyな読み込みは、サイトのパフォーマンスを改善し、負荷時間とデータの使用量を削減するための非批判的なリソースを扱います。重要なプラクティスには、重要なコンテンツの優先順位付けや効率的なAPIの使用が含まれます。

UniappのWebパフォーマンスのために画像を最適化するにはどうすればよいですか? UniappのWebパフォーマンスのために画像を最適化するにはどうすればよいですか? Mar 27, 2025 pm 04:50 PM

この記事では、圧縮、レスポンシブデザイン、怠zyなロード、キャッシング、およびWebP形式の使用を通じて、Webパフォーマンスを向上させるために、Uniappの画像の最適化について説明します。

Uniappで複雑なデータ構造を管理するための一般的なパターンは何ですか? Uniappで複雑なデータ構造を管理するための一般的なパターンは何ですか? Mar 25, 2025 pm 02:31 PM

この記事では、Uniappの複雑なデータ構造の管理について説明し、Singleton、Observer、Factory、Stateなどのパターンに焦点を当て、VuexおよびVue 3 Composition APIを使用してデータ状態の変更を処理するための戦略について説明します。

Uniappはグローバルな構成とスタイリングをどのように処理しますか? Uniappはグローバルな構成とスタイリングをどのように処理しますか? Mar 25, 2025 pm 02:20 PM

Uniappは、Manifest.jsonを介してグローバル構成を管理し、app.vueまたはapp.scssを介してスタイリングを管理し、変数とミキシンにuni.scssを使用します。ベストプラクティスには、SCS、モジュラースタイル、レスポンシブデザインの使用が含まれます。

Uniappの計算プロパティとは何ですか?それらはどのように使用されていますか? Uniappの計算プロパティとは何ですか?それらはどのように使用されていますか? Mar 25, 2025 pm 02:23 PM

Vue.jsから派生したUniappの計算プロパティは、リアクティブで再利用可能な、最適化されたデータ処理を提供することにより、開発を強化します。依存関係が変更されたときに自動的に更新され、パフォーマンスの利点を提供し、国家管理を簡素化します

See all articles