微信小程序上传图片到COS腾讯云

功能需求:用户可以在评论中上传图片,图片保存到腾讯云COS上。

实现方法,微信小程序需要往后台传一个代表文件的参数file代表文件,借助MultipartFile获得文件的路径和文件名等信息。

关键实现代码:

 @RequestMapping(value = "/plugins/fileServer/fileservice/sales/admin", method = RequestMethod.POST)
    void postAdmin(@RequestParam(value = "file", required = false) MultipartFile file, Integer preview_height, Integer preview_width, String target, String type, HttpServletRequest request, HttpServletResponse response) {
        String body = "";
        if (file == null) {
            response.setStatus(401);
            body = GsonUtils.obj2Gson(OutAdmin.error(401, "no file upload")).toString();
            ResponseUtils.renderJson(response, body);
            return;
        }
        if (preview_width == null) {
            preview_width = 128;
        }
        if (preview_height == null) {
            preview_height = 128;
        }
        String uploadPath = "/default";
        if (!StringUtils.isBlank(target)) {
            uploadPath = "/" + target;
        }
        String uploadPreviewPath = uploadPath + "/preview";

        CmsSite site = CmsUtils.getSite(request);
        String fileUrl = upload(site, file, uploadPath);
        if (fileUrl == null) {
            response.setStatus(401);
            body = GsonUtils.obj2Gson(OutAdmin.error(401, "upload error")).toString();
            ResponseUtils.renderJson(response, body);
            return;
        }
        String preview_fileUrl = uploadPreview(site, file, uploadPreviewPath, preview_width, preview_height);
        if (preview_fileUrl == null) {
            response.setStatus(401);
            body = GsonUtils.obj2Gson(OutAdmin.error(401, "upload preview error")).toString();
            ResponseUtils.renderJson(response, body);
            return;
        }

        String content_type = file.getContentType();
        String download_link = fileUrl;
        String fileid = FilenameUtils.getBaseName(fileUrl);
        String filename = FilenameUtils.getName(fileUrl);
        String preview_link = preview_fileUrl;
        Integer result = 0;
        OutAdmin outAdmin = new OutAdmin(content_type, download_link, fileid, filename, preview_link, result);
        body = GsonUtils.obj2Gson(outAdmin).toString();
        ResponseUtils.renderJson(response, body);
    }

    private String upload(CmsSite site, MultipartFile file, String uploadPath) {
        String origName = file.getOriginalFilename();
        Long fileSize = file.getSize() / 1024;//单位KB
        String ext = FilenameUtils.getExtension(origName).toLowerCase(Locale.ENGLISH);
        String fileUrl = null;
        try {
            if (site.getUploadOss() != null) {
                // 支持上传(腾讯)云
                CmsOss oss = site.getUploadOss();
                fileUrl = oss.storeByExt(uploadPath, ext, file.getInputStream());
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return fileUrl;
    }

原文地址:https://www.cnblogs.com/yanqingguo/p/9816570.html

时间: 2024-10-10 19:50:21

微信小程序上传图片到COS腾讯云的相关文章

微信小程序开发平台新功能「云开发」快速上手体验

微信小程序开发平台刚刚开放了一个全新的功能:云开发. 简单地说就是将开发人员搭建微信小程序后端的成本再次降低,此文刚好在此产品公测时,来快速上手看看都有哪些方便开发者的功能更新. 微信小程序一直保持一个比较稳定的节奏进行功能的开放与更新,不激进但是又不怠慢,就一直像微信产品的节奏一样,而在生活中我们使用微信小程序的频率也慢慢高起来,如 KFC 自助点个餐.下单一些较冷门的商品等等. 而我给大家免费更新的「微信小程序开发视频教程」大纲也一直在修正与增加,从 40 集增加到 60 集,在云开发发布后

微信小程序又一爆炸功能上线-云开发

云开发介绍 开发者可以使用云开发开发微信小程序.小游戏,无需搭建服务器,即可使用云端能力. 云开发为开发者提供完整的云端支持,弱化后端和运维概念,无需搭建服务器,使用平台提供的 API 进行核心业务开发,即可实现快速上线和迭代,同时这一能力,同开发者已经使用的云服务相互兼容,并不互斥. 目前提供三大基础能力支持: 云函数:在云端运行的代码,微信私有协议天然鉴权,开发者只需编写自身业务逻辑代码 数据库:一个既可在小程序前端操作,也能在云函数中读写的 JSON 数据库 存储:在小程序前端直接上传/下

微信小程序上传图片到服务器实例

这一篇主要说头像 上传,以及修改保存的功能.本章节主要用的知识点有 1. wx.chooseImage 从本地相册选择图片或使用相机拍照. 2.wx.uploadFile 将本地资源上传到服务器. 3. 修改原来的小程序头像并保存,调用后台接口修改操作  第一步:我们要获取本地图片,官方文档:https://developers.weixin.qq.com/miniprogram/dev/api/media-picture.html#wxchooseimageobject 我这里也贴出来了,不够

微信小程序上传图片(前端+PHP后端)

一.wxml文件 <text>上传图片</text> <view> <button bindtap="uploadimg">点击选择上传图</button> </view> <image src='{{source}}' style='width:600rpx; height:600rpx' /> 二.js文件 Page({ /** * 页面的初始数据 */ data: { //初始化为空 source

微信小程序上传图片单张

wxml代码 <view> <image src='{{source}}' bindtap="uploadimg" style='width:200rpx;height:200rpx;background:red;'>点击选择上传图</image> </view> js代码 var app = getApp() Page({ /** * 页面的初始数据 */ data: { //初始化为空 source: '' }, /** * 上传图片

微信小程序上传图片

话不多说,直接上码. <view class="section"> <!--放一张图片或按钮 点击时去选择图片--> <image class='ph' src='{{photos}}' bindtap='touchphoto' mode='aspectFit'> </image> <!--循环显示选中的图片--> <block wx:for="{{pics}}" wx:for-index="

微信小程序 - 上传图片组件

使用了ES8的async/await,注意正确导入“regenerate.js”的路径,使用说明在components/up-img/index.js 点击下载:图片上传组件 原文地址:https://www.cnblogs.com/cisum/p/10199507.html

微信小程序 上传图片

效果图  如上,js  如下,在页面循环图片就可以 /** * 选择图片 */ uploadImgAdd: function(e) { var imgs = this.data.imgs; wx.chooseImage({ sizeType: ['original', 'compressed'], sourceType: ['album', 'camera'], success: (res) => { for (let j in res.tempFilePaths){ if (res.tempF

5行代码实现微信小程序图片上传与腾讯免费5G存储空间的使用

本文介绍了如何在微信小程序开发中使用腾讯官方提供的云开发功能快速实现图片的上传与存储,以及介绍云开发的 5G 存储空间的基本使用方法,这将大大提高微信小程序的开发效率,同时也是微信小程序系列教程的视频版更新的文字版本摘要. 此文为 「60 节实战课微信小程序开发视频教程」 的第 51 小节内容,如果需要查看视频版本的实战操作,请直接跳至文章的最后部分查看. 1.云开发图片空间简介 在之前的文章 微信小程序开发平台新功能「云开发」快速上手体验 中我们简要介绍了腾讯官方给所有的微信小程序开发提供的云