uni-app 支持所有平台的所有文件上传功能

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

uni-app 支持所有平台的所有文件上传功能

2 回复

如果只要Android和iOS可以联系我:1804945430


在uni-app中实现跨平台文件上传功能,可以充分利用其提供的API和组件。以下是一个简单的代码示例,展示了如何在uni-app中实现文件上传功能,支持微信小程序、H5、App等平台。

1. 前端部分

在页面的<template>中,我们可以添加一个文件选择器和一个上传按钮:

<template>
  <view>
    <button type="primary" @click="chooseFile">选择文件</button>
    <button type="primary" @click="uploadFile" :disabled="!filePath">上传文件</button>
    <view v-if="uploadResult">上传结果: {{ uploadResult }}</view>
  </view>
</template>

<script>部分,我们实现文件选择和上传的逻辑:

<script>
export default {
  data() {
    return {
      filePath: '',
      uploadResult: ''
    };
  },
  methods: {
    chooseFile() {
      uni.chooseMessageFile({
        count: 1,
        type: 'file',
        success: (res) => {
          this.filePath = res.tempFiles[0].path;
        },
        fail: (err) => {
          console.error('选择文件失败:', err);
        }
      });
    },
    uploadFile() {
      if (!this.filePath) return;

      uni.uploadFile({
        url: 'https://your-server.com/upload', // 替换为你的服务器上传接口
        filePath: this.filePath,
        name: 'file',
        formData: {
          user: 'test'
        },
        success: (uploadFileRes) => {
          this.uploadResult = JSON.parse(uploadFileRes.data);
          console.log('上传成功:', this.uploadResult);
        },
        fail: (err) => {
          console.error('上传失败:', err);
        }
      });
    }
  }
};
</script>

2. 后端部分(示例)

后端需要处理文件上传请求。以下是一个使用Node.js和Express的示例:

const express = require('express');
const multer = require('multer');
const app = express();
const port = 3000;

const storage = multer.diskStorage({
  destination: function (req, file, cb) {
    cb(null, 'uploads/');
  },
  filename: function (req, file, cb) {
    cb(null, Date.now() + '-' + file.originalname);
  }
});

const upload = multer({ storage: storage });

app.post('/upload', upload.single('file'), (req, res) => {
  res.json({ message: '文件上传成功', file: req.file });
});

app.listen(port, () => {
  console.log(`服务器运行在 http://localhost:${port}`);
});

总结

上述代码展示了如何在uni-app中实现跨平台的文件上传功能,包括前端文件选择和上传逻辑,以及一个简单的后端文件处理示例。请注意,实际项目中需要根据具体需求进行调整,例如错误处理、进度显示等。同时,确保后端服务器能够正确处理文件上传请求,并存储上传的文件。

回到顶部