uni-app自研图片存储APP分享,有建议可互相交流

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

uni-app自研图片存储APP分享,有建议可互相交流

1 回复

针对您分享的uni-app自研图片存储APP项目,这里提供一个简要的代码案例,以展示如何在uni-app中实现图片上传、存储及展示的基本流程。此示例不涉及具体的后端存储服务实现细节,但假设您已有一个可接收图片文件并返回存储路径的后端API。

1. 前端部分(uni-app)

页面布局(index.vue)

<template>
  <view class="container">
    <button @click="chooseImage">选择图片</button>
    <image v-if="imageUrl" :src="imageUrl" style="width: 100%; height: auto;"></image>
  </view>
</template>

<script>
export default {
  data() {
    return {
      imageUrl: ''
    };
  },
  methods: {
    chooseImage() {
      uni.chooseImage({
        count: 1,
        success: (res) => {
          const tempFilePath = res.tempFilePaths[0];
          this.uploadImage(tempFilePath);
        }
      });
    },
    uploadImage(filePath) {
      uni.uploadFile({
        url: 'https://your-backend-api.com/upload', // 替换为您的后端API地址
        filePath: filePath,
        name: 'file',
        success: (uploadFileRes) => {
          const data = JSON.parse(uploadFileRes.data);
          if (data.success) {
            this.imageUrl = data.imageUrl; // 假设后端返回图片URL
          } else {
            console.error('上传失败:', data.message);
          }
        },
        fail: (err) => {
          console.error('上传失败:', err);
        }
      });
    }
  }
};
</script>

<style>
.container {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  height: 100vh;
}
button {
  margin-bottom: 20px;
}
</style>

2. 后端部分(示例)

由于篇幅限制,这里仅简要描述后端处理逻辑。后端需要实现一个API接口,接收前端上传的图片文件,并将其保存到指定的存储服务(如AWS S3、阿里云OSS等),然后返回图片的访问URL给前端。

示例(Node.js + Express + Multer):

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

const storage = multer.diskStorage({
  // 配置存储位置及文件名等
});

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

app.post('/upload', upload.single('file'), (req, res) => {
  const file = req.file;
  if (!file) {
    return res.status(400).json({ success: false, message: 'No file uploaded' });
  }
  
  // 假设保存文件后,返回图片的URL(此处省略具体保存逻辑)
  const imageUrl = `https://your-storage-service.com/${file.filename}`;
  res.json({ success: true, imageUrl: imageUrl });
});

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

请注意,以上代码仅为示例,实际项目中需考虑错误处理、安全性、文件大小限制等因素,并根据具体需求调整。

回到顶部