uni-app 多图上传功能如何实现

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

uni-app 多图上传功能如何实现

uniapp多图上传怎么写?

开发环境 版本号 项目创建方式
1 回复

在uni-app中实现多图上传功能,可以利用其内置的API以及组件来完成。以下是一个基本的实现案例,包括前端页面和后端接口调用的代码示例。

前端页面实现

首先,在页面的<template>部分,我们使用<button>触发图片选择,使用<view><image>来展示已选择的图片列表。

<template>
  <view>
    <button @click="chooseImage">选择图片</button>
    <view v-for="(image, index) in images" :key="index" class="image-container">
      <image :src="image" mode="aspectFill" class="image"></image>
    </view>
    <button @click="uploadImages" :disabled="!images.length">上传图片</button>
  </view>
</template>

<script>部分,我们定义chooseImageuploadImages方法,分别用于选择图片和上传图片。

<script>
export default {
  data() {
    return {
      images: []
    };
  },
  methods: {
    chooseImage() {
      uni.chooseImage({
        count: 9, // 限制选择图片的数量
        success: (res) => {
          this.images = this.images.concat(res.tempFilePaths);
        }
      });
    },
    uploadImages() {
      uni.uploadFile({
        url: 'https://your-server-url/upload', // 后端上传接口
        filePath: this.images,
        name: 'files',
        formData: {
          user: 'test'
        },
        success: (uploadFileRes) => {
          console.log('上传成功:', uploadFileRes.data);
        },
        fail: (err) => {
          console.error('上传失败:', err);
        }
      });
    }
  }
};
</script>

后端接口实现(示例)

后端接口需要根据实际开发环境编写,这里以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() + path.extname(file.originalname));
  }
});

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

app.post('/upload', upload.array('files', 9), (req, res) => {
  res.send('Files uploaded successfully');
});

app.listen(port, () => {
  console.log(`Server running at http://localhost:${port}/`);
});

注意,以上代码仅为示例,实际开发中需要考虑文件大小限制、文件类型验证、安全性等问题。同时,确保前端和后端的接口地址、请求参数等保持一致。

通过以上步骤,你可以在uni-app中实现多图上传功能。

回到顶部