uni-app 安卓和IOS通用的封装好的附件上传插件需求

发布于 1周前 作者 wuwangju 来自 Uni-App

uni-app 安卓和IOS通用的封装好的附件上传插件需求

求一款安卓和IOS通用的封装好的附件上传插件,不需要自定义基座

1 回复

为了满足您对于uni-app中安卓和iOS通用的封装好的附件上传插件的需求,以下是一个基本的示例代码,展示了如何封装一个通用的附件上传功能。这个示例使用了uni-app的原生模块进行文件选择和上传,同时考虑了跨平台兼容性。

首先,确保您的项目中已经安装了必要的依赖,比如@dcloudio/uni-app

1. 创建一个封装好的附件上传插件

在您的utils目录下创建一个名为upload.js的文件,内容如下:

// utils/upload.js
export function uploadFile(filePath, url) {
    return new Promise((resolve, reject) => {
        uni.uploadFile({
            url: url, // 服务器地址
            filePath: filePath, // 文件路径
            name: 'file', // 文件对应的key,开发者在服务器端用这个key可以获取到文件
            formData: {
                // 其他表单数据
                user: 'test'
            },
            success: (uploadFileRes) => {
                if (uploadFileRes.statusCode === 200) {
                    resolve(JSON.parse(uploadFileRes.data));
                } else {
                    reject(new Error(`Upload failed with status code: ${uploadFileRes.statusCode}`));
                }
            },
            fail: (err) => {
                reject(err);
            }
        });
    });
}

2. 在页面中使用该插件

在您的页面文件中,比如pages/index/index.vue,您可以这样使用:

<template>
    <view>
        <button @click="chooseAndUpload">选择文件并上传</button>
    </view>
</template>

<script>
import { uploadFile } from '@/utils/upload.js';

export default {
    methods: {
        chooseAndUpload() {
            uni.chooseImage({
                count: 1,
                success: (res) => {
                    const filePath = res.tempFilePaths[0];
                    const uploadUrl = 'https://your-server.com/upload'; // 替换为您的服务器地址

                    uploadFile(filePath, uploadUrl)
                        .then(response => {
                            console.log('Upload success:', response);
                        })
                        .catch(error => {
                            console.error('Upload failed:', error);
                        });
                },
                fail: (err) => {
                    console.error('Choose image failed:', err);
                }
            });
        }
    }
};
</script>

3. 注意事项

  • 确保您的服务器能够接收并处理文件上传请求。
  • uni.chooseImageuni.uploadFile是uni-app提供的跨平台API,可以在安卓和iOS上正常工作。
  • 根据您的实际需求,您可能需要调整formData的内容,以及处理上传成功或失败后的逻辑。

以上代码提供了一个基本的附件上传功能封装,您可以根据具体需求进行扩展和优化。

回到顶部