웹 프론트엔드 uni-app Uniapp의 사진 업로드 및 삭제 작업에 대해 이야기하겠습니다.

Uniapp의 사진 업로드 및 삭제 작업에 대해 이야기하겠습니다.

Apr 18, 2023 pm 02:09 PM

최근 몇 년 동안 Uniapp은 모바일 애플리케이션 개발 분야에서 점점 더 많은 개발자가 가장 먼저 선택하는 곳이 되었습니다. Uniapp은 개발자가 다중 터미널 애플리케이션을 개발할 수 있는 새로운 개발 프레임워크로, 엔지니어의 개발 효율성을 향상시킵니다. 이번 글에서는 유니앱의 사진 업로드 및 삭제 작업에 대한 자세한 소개와 설명을 제공하겠습니다.

1. 사진 업로드 구현

카메라와 사진 선택은 일반적인 기능 중 하나입니다. Uniapp은 카메라, 사진 앨범, WeChat Moments, 온라인 파일 등을 통해 사진을 선택하고 선택할 수 있는 풍부한 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>
로그인 후 복사

이 코드에서는 upload-url 속성이 다음과 같은 uni-upload 구성 요소를 정의합니다. 이미지 업로드 URL 주소인 on-successon-fail은 각각 업로드 성공 및 실패에 대한 콜백 함수에 해당합니다. @click 속성은 클릭 후 업로드 기능을 트리거합니다. uni-upload组件,其中upload-url属性是图片上传的URL地址,on-successon-fail分别对应上传成功和失败的回调函数。@click属性是点击后触发上传函数。

然后我们需要在Vue实例中配置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)
           }
         });
       }
     });
   }
}
로그인 후 복사

这段代码中,我们首先定义了successfail两个回调函数,当上传成功或者失败后,就会执行相应的回调函数。在upload函数中,我们使用uni.chooseImage方法选择图片,获取到临时文件路径,并使用uni.uploadFile方法将文件上传到服务器。name属性表示文件对应的键值,即服务器上接收文件的参数名。

这样就实现了在Uniapp中选择图片并上传的功能。

  1. 上传图片并获取返回结果

在上传图片的过程中,我们需要在上传成功后获取到后端返回的结果,这样可以获取到上传图片的URL地址或者其他图片上传的信息。

uni.uploadFile这个接口中,我们在success回调函数中增加一个参数,用来接收上传成功后后端返回的结果。修改后的代码如下:

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中打印了服务器返回的数据。

二、图片删除的实现

在我们的应用程序中,有时候需要删除已经上传的图片,这样可以节省存储空间并达到优化程序的目的,Uniapp提供了很多API接口来实现这个功能。下面给出两种方式:

  1. 使用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

그런 다음 Vue 인스턴스에서 두 개의 콜백 함수 successfail을 구성해야 합니다.
    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);
          }
        });
      }
    }
    로그인 후 복사
  1. 이 코드에서는 먼저 success를 정의합니다. 콜백 함수는 code>와 fail 두 가지가 있습니다. 업로드가 성공하거나 실패하면 해당 콜백 함수가 실행됩니다. upload 함수에서는 uni.chooseImage 메소드를 사용하여 이미지를 선택하고 임시 파일 경로를 얻은 다음 uni.uploadFile 메소드를 사용하여 파일을 서버에 업로드합니다. name 속성은 해당 파일에 해당하는 키 값, 즉 서버에서 받은 파일의 파라미터 이름을 나타낸다.
이렇게 하면 사진을 선택해서 유니앱에 업로드하는 기능이 구현됩니다.

이미지 업로드 및 반환 결과 가져오기

이미지 업로드 과정에서 업로드가 성공한 후 백엔드에서 반환된 결과를 가져와야 업로드된 이미지의 URL 주소 또는 기타 정보를 얻을 수 있습니다. 이미지 업로드 정보입니다.

uni.uploadFile 인터페이스에서는 업로드가 성공한 후 백엔드에서 반환된 결과를 수신하기 위해 성공 콜백 함수에 매개변수를 추가합니다. 수정된 코드는 다음과 같습니다.

rrreee

위 코드에서는 성공으로 서버에서 반환한 데이터를 인쇄합니다. 🎜🎜2. 사진 삭제 구현🎜🎜우리 애플리케이션에서는 때때로 업로드된 사진을 삭제해야 하는데, 이는 저장 공간을 절약하고 프로그램 최적화 목적을 달성하기 위해 이 기능을 실현하기 위해 많은 API 인터페이스를 제공합니다. 아래에는 두 가지 방법이 있습니다. 🎜🎜🎜사진을 삭제하려면 uni.removeSavedFile 메서드를 사용하세요.🎜🎜🎜이 방법은 앱에서 사용된 사진을 앱 자체에서 다운로드하거나 촬영하는 것입니다. 응용 프로그램 디렉터리 또는 메모리에서 삭제합니다. 🎜🎜먼저 삭제 메소드를 정의합니다: 🎜rrreee🎜컴포넌트에서 삭제 메소드 사용: 🎜rrreee🎜이 코드에서는 목록 컴포넌트에 v-for 명령어를 사용하여 삭제할 이미지의 정보를 차례로 가져옵니다. deleteImage 메소드는 해당 파일을 삭제하는 데 사용됩니다. 🎜🎜🎜서버에 삭제 요청 보내기🎜🎜🎜저희 애플리케이션에서는 서버의 이미지를 사용하는 경우 서버에 삭제 요청을 보내 이미지를 삭제할 수 있습니다. 이 방법과 uni.removeSavedFile 방법의 차이점은 서버에 요청을 보내고 백그라운드에서 이미지를 삭제해야 한다는 것입니다. 🎜🎜삭제 방법 정의: 🎜rrreee🎜이렇게 하면 백엔드가 이 요청을 받은 후 서버에 있는 해당 데이터를 삭제할 수 있습니다. 🎜🎜3. 요약🎜🎜위는 유니앱에서 이미지 업로드와 삭제 기능을 구현하는 두 가지 방법입니다. 실제 응용 프로그램에서는 프로그램에서 완벽한 이미지 업로드 및 삭제 기능을 달성하기 위해 실제 필요에 따라 선택할 수 있습니다. 동시에 더 나은 프로그램 성능을 달성하기 위해 사용 중에 더 나은 성능 방법을 채택할 수도 있습니다. 🎜

위 내용은 Uniapp의 사진 업로드 및 삭제 작업에 대해 이야기하겠습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 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

시각적 웹 개발 도구

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

이 기사는 코드 최적화, 리소스 관리 및 코드 분할 및 게으른로드와 같은 기술에 중점을 둔 UNIAPP 패키지 크기를 줄이기위한 전략에 대해 설명합니다.

UniAPP 개발에 사용할 수있는 디버깅 도구는 무엇입니까? UniAPP 개발에 사용할 수있는 디버깅 도구는 무엇입니까? Mar 27, 2025 pm 05:05 PM

이 기사는 HBuilderx, WeChat 개발자 도구 및 Chrome Devtools와 같은 도구에 중점을 둔 UniAPP 개발을위한 디버깅 도구 및 모범 사례에 대해 설명합니다.

게으른 하중을 사용하여 성능을 향상시킬 수 있습니까? 게으른 하중을 사용하여 성능을 향상시킬 수 있습니까? Mar 27, 2025 pm 04:47 PM

게으른 하중은 비 약한 리소스를 방어하여 사이트 성능을 향상시켜로드 시간 및 데이터 사용량을 줄입니다. 주요 관행에는 중요한 콘텐츠 우선 순위를 정하고 효율적인 API 사용이 포함됩니다.

UniAPP에서 웹 성능을위한 이미지를 어떻게 최적화 할 수 있습니까? UniAPP에서 웹 성능을위한 이미지를 어떻게 최적화 할 수 있습니까? Mar 27, 2025 pm 04:50 PM

이 기사에서는 압축, 반응 형 디자인, 게으른로드, 캐싱 및 Webp 형식 사용을 통해 웹 성능을 향상시키기 위해 UniAPP의 이미지 최적화에 대해 설명합니다.

UniAPP에서 복잡한 데이터 구조를 관리하기위한 몇 가지 일반적인 패턴은 무엇입니까? UniAPP에서 복잡한 데이터 구조를 관리하기위한 몇 가지 일반적인 패턴은 무엇입니까? Mar 25, 2025 pm 02:31 PM

이 기사는 UniAPP의 복잡한 데이터 구조 관리, 싱글 톤, 관찰자, 공장 및 상태와 같은 패턴과 Vuex 및 VUE 3 Composition API를 사용하여 데이터 상태 변경을 처리하기위한 전략에 중점을 둔다.

UniAPP의 계산 된 속성은 무엇입니까? 그들은 어떻게 사용됩니까? UniAPP의 계산 된 속성은 무엇입니까? 그들은 어떻게 사용됩니까? Mar 25, 2025 pm 02:23 PM

vue.js에서 파생 된 UniAPP의 계산 된 속성은 반응성, 재사용 가능하며 최적화 된 데이터 처리를 제공하여 개발을 향상시킵니다. 종속성이 변경되면 자동으로 업데이트하고 성능 혜택을 제공하며 주 관리 공동 단순화

UnIAPP는 글로벌 구성 및 스타일을 어떻게 처리합니까? UnIAPP는 글로벌 구성 및 스타일을 어떻게 처리합니까? Mar 25, 2025 pm 02:20 PM

UNIAPP는 변수 및 믹스 인에 대해 uni.scss를 사용하여 app.vue 또는 app.scss를 통한 Manifest.json 및 스타일을 통해 글로벌 구성을 관리합니다. 모범 사례에는 SCSS, 모듈 식 스타일 및 반응 형 디자인 사용이 포함됩니다.

See all articles