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 중국어 웹사이트의 기타 관련 기사를 참조하세요!