Home > Web Front-end > uni-app > How to solve the problem that the selected album pictures are not displayed in the uniapp project

How to solve the problem that the selected album pictures are not displayed in the uniapp project

PHPz
Release: 2023-04-06 14:26:48
Original
3621 people have browsed it

In the process of developing using Uniapp, we often need to use the function of selecting album pictures. However, sometimes we encounter the problem that the pictures are not displayed after selection. In this article, I will explain why this problem occurs and how to solve it.

1. Why does the album picture not display?

1. Permission issues

In the Android system, we need to dynamically apply for permission to read external storage before we can access the album. If we do not apply for permission successfully, then the pictures in the album will not be able to access the photo album. is read and cannot be displayed.

2. Data type issue

When calling the API for selecting album pictures, we need to return an array to load the selected pictures, but sometimes data may appear in our code A type mismatch problem prevents the selected image from being displayed on the page.

3. Path problem

The pictures selected in the album need to be displayed using the path of the picture when transferred to the front-end page, but if our path is written incorrectly or the file name does not match, it will also cause The selected image cannot be displayed properly.

2. How to solve the problem of album pictures not being displayed?

1. Check permission issues

When selecting album pictures, we need to apply for permission to read external storage. If our permission application is unsuccessful, we need to check. You can solve the permission problem through the following steps:

(1) Add the permission to read external storage in the manifest.json file:

"android": {
    "permission": [
      "android.permission.READ_EXTERNAL_STORAGE"
    ]
  }
Copy after login

(2) When you want to use the function of selecting album pictures In the page, use the uni.requestAuthorize method to apply for permission:

uni.requestAuthorize({
    scope: 'scope.writePhotosAlbum',
    success() {
        console.log('授权成功')
    },
    fail() {
        console.log('授权失败')
    }
})
Copy after login

2. Check the data type problem

If our data type does not match, the selected image cannot be displayed normally on the page . We need to pay attention to the data type used in the code, such as the following example:

data() {
    return {
       imgList: [],
    }
},
methods: {
    chooseImage(){
        uni.chooseImage({
            count: 3,
            sizeType: ['original', 'compressed'],
            sourceType: ['album', 'camera'],
            success: function (res) {
                this.imgList = res.tempFilePaths; // 选择图片成功后将图片路径存入imgList数组
            }
        })
    }
}
Copy after login

In the above code, we store the temporary path of the selected image in the imgList array, so if we need to display it on the page The selected image can be selected in the following way:

<view>
    <image v-for="(item,index) in imgList" :src="item"></image>
</view>
Copy after login

In the above code, we use v-for to traverse each element in the imgList array, and use the :image tag to display the image on the page .

3. Check the path problem

We need to use the correct path for reference when displaying the image, so we need to carefully check whether the image path is correct and whether there are spelling errors and other issues. Normally, what we return after selecting a picture is a temporary path, but when displaying the picture we need to use a local path. We can get the local path through the following method:

let realPath = '';
uni.getFileSystemManager().access({
        path: tempFilePaths,
        success() {
            realPath = wx.env.USER_DATA_PATH + '/' + new Date().getTime() + '.png'; //使用 wx.env.USER_DATA_PATH 获取本地存储路径
            uni.getFileSystemManager().saveFile({
                tempFilePath: tempFilePaths, // 临时文件地址
                filePath: realPath,
                success: (res) => {
                        console.log('保存图片到本地成功:' + res.savedFilePath)
                },
                fail: function (res) {
                    console.log(res);
                }
            });
        },
        fail() {
            console.log('访问失败')
        }
});
Copy after login

Through the above method, we can save the selected image locally, and call the callback function after successful saving to obtain and display the path.

Summary

The album pictures not displaying is a common problem when we use Uniapp development process. Typically, this problem is caused by incorrect permissions, data types, or paths, etc. We can solve this problem by checking permissions, data types and paths. I hope this article can help everyone and make the Uniapp development process smoother.

The above is the detailed content of How to solve the problem that the selected album pictures are not displayed in the uniapp project. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template