Rumah  >  Artikel  >  hujung hadapan web  >  Nama imej yang dimuat naik oleh uniapp kekal tidak berubah

Nama imej yang dimuat naik oleh uniapp kekal tidak berubah

WBOY
WBOYasal
2023-05-22 13:40:372318semak imbas

Dalam uniapp, kami sering menggunakan fungsi memuat naik imej, tetapi secara lalai, nama fail imej yang dimuat naik akan dinamakan semula atau platform yang berbeza akan mempunyai prestasi yang berbeza, yang akan menjejaskan pemprosesan bahagian belakang dan paparan bahagian hadapan. . Menyebabkan masalah. Oleh itu, semasa pembangunan, kita selalunya perlu mengekalkan nama imej yang dimuat naik tidak berubah.

Artikel ini akan memperkenalkan cara mengekalkan nama imej yang dimuat naik tidak berubah dalam uniapp.

1. Pengenalan

Dalam uniapp, muat naik imej terutamanya menggunakan antara muka API uni.uploadFile(). Melalui antara muka ini, kita boleh memuat naik imej ke pelayan. Walau bagaimanapun, uni.uploadFile() akan menamakan fail imej mengikut platform yang berbeza atau peraturan penamaan fail khas, menyebabkan kami tidak dapat mengendalikan imej yang dimuat naik dengan baik. Jadi, bagaimana untuk mengekalkan nama imej yang dimuat naik tidak berubah apabila menggunakan uni.uploadFile()?

2 Dapatkan maklumat asal imej yang dimuat naik

Apabila kami memilih imej melalui antara muka API uni.chooseImage(), kami boleh mendapatkan maklumat asal imej dan mendapatkan fail tersebut. nama dan akhiran.

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. Gunakan objek formData untuk memuat naik imej

Sebelum kami menggunakan antara muka uni.uploadFile() untuk memuat naik imej Walau bagaimanapun, parameter fail antara muka ini hanya boleh menerima laluan fail, bukan objek FormData. Dalam this.formData, kita boleh mencipta objek FormData dan memuat naik nama fail imej yang dimuat naik bersama-sama dengan data fail.

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);
                    }
                });
            }
        });
    }
});

Melalui kaedah di atas, kita boleh mengekalkan nama imej yang dimuat naik tidak berubah.

4. Ringkasan

Apabila memuat naik imej dalam uniapp, kami boleh mendapatkan nama fail dan akhiran dengan mendapatkan maklumat asal imej, dan kemudian memuat naik nama fail dan data bersama-sama. Ini boleh menyelesaikan masalah yang disebabkan oleh platform yang berbeza atau peraturan penamaan khas, dan boleh mengendalikan imej yang dimuat naik dengan lebih baik.

Atas ialah kandungan terperinci Nama imej yang dimuat naik oleh uniapp kekal tidak berubah. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:Tukar uniapp kepada projek lainArtikel seterusnya:Tukar uniapp kepada projek lain