>  기사  >  웹 프론트엔드  >  유니앱에서 업로드한 이미지 이름은 변경되지 않습니다.

유니앱에서 업로드한 이미지 이름은 변경되지 않습니다.

WBOY
WBOY원래의
2023-05-22 13:40:372315검색

uniapp에서는 이미지 업로드 기능을 자주 사용하지만, 기본적으로 업로드된 이미지의 파일 이름이 바뀌거나 플랫폼마다 성능이 달라서 백엔드 처리 및 프런트엔드 디스플레이에 문제가 발생합니다. 작은 문제는 아닙니다. 따라서 개발 중에는 업로드된 이미지의 이름을 변경하지 않고 유지해야 하는 경우가 많습니다.

본 글에서는 유니앱에서 업로드된 사진의 이름을 변경하지 않고 유지하는 방법을 소개하겠습니다.

1. 소개

uniapp에서 이미지 업로드는 주로 uni.uploadFile()이라는 API 인터페이스를 사용합니다. 이 인터페이스를 통해 이미지를 서버에 업로드할 수 있습니다. 그러나 uni.uploadFile()은 다양한 플랫폼이나 특별한 파일 명명 규칙에 따라 이미지 파일의 이름을 지정하므로 업로드된 이미지를 제대로 처리할 수 없게 됩니다. 그렇다면 uni.uploadFile()을 사용할 때 업로드된 이미지의 이름을 변경하지 않고 유지하려면 어떻게 해야 할까요?

2. 업로드된 이미지의 원본 정보 얻기

uni.chooseImage() API 인터페이스를 통해 이미지를 선택할 때 이미지의 원본 정보와 파일 이름 및 접미사를 얻을 수 있습니다.

uni.chooseImage({
    count: 1,
    success: function(res) {
        uni.getImageInfo({
            src: res.tempFilePaths[0],
            success: function(infoRes) {
                //文件名
                var fileName = res.tempFilePaths[0].substring(res.tempFilePaths[0].lastIndexOf('/') + 1);
                //后缀名
                var extName = fileName.substring(fileName.lastIndexOf('.'));
            }
        });
    }
});

3. formData 개체를 사용하여 이미지 업로드

전에는 uni.uploadFile() 인터페이스를 사용하여 이미지를 업로드했습니다. 그러나 이 인터페이스의 file 매개변수는 파일 경로만 허용하고 FormData 개체를 받을 수 없습니다. this.formData에서는 FormData 객체를 생성하고 업로드된 이미지의 파일명을 파일 데이터와 함께 업로드할 수 있습니다.

uni.chooseImage({
    count: 1,
    success: function(res) {
        uni.getImageInfo({
            src: res.tempFilePaths[0],
            success: function(infoRes) {
                //文件名
                var fileName = res.tempFilePaths[0].substring(res.tempFilePaths[0].lastIndexOf('/') + 1);
                //后缀名
                var extName = fileName.substring(fileName.lastIndexOf('.'));

                // 将文件数据赋值到formData对象中
                this.formData = new FormData();
                this.formData.append('file', res.tempFiles[0].path, fileName + extName);
                console.log('开始上传文件')
                uni.uploadFile({
                    url: '上传文件的url',
                    filePath: res.tempFilePaths[0],
                    name: 'file',
                    formData: this.formData,
                    success: function (res) {
                        console.log(res);
                    }
                });
            }
        });
    }
});

위의 방법을 통해 업로드된 이미지의 이름을 변경하지 않고 유지할 수 있습니다.

4. 요약

유니앱에서 사진을 업로드할 때 사진의 원본 정보를 얻어 파일명과 접미사를 가져온 후, 파일명과 데이터를 함께 업로드할 수 있습니다. 이를 통해 다양한 플랫폼이나 특별한 명명 규칙으로 인해 발생하는 문제를 해결할 수 있으며 업로드된 이미지를 더 잘 처리할 수 있습니다.

위 내용은 유니앱에서 업로드한 이미지 이름은 변경되지 않습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.