springBoot做后台实现微信小程序图片上传和下载

1.编写springBoot后台

控制层代码编写,。

  /**
     * 文件上传
     * @param file
     * @return
     * @throws Exception
     */
    @ResponseBody
    @RequestMapping("/upload")
    public String upload(@RequestParam("file") MultipartFile file,@RequestParam(name = "fileName",required=false) String fileName
    ) throws Exception{
    //fileName是你前台传参时的文件名字,也可以不指定
    //不指定名字,保存时使用 file.getOriginalFilename()得到文件名字;
           System.out.println("接收到文件");
           //保存到文件服务器,OSS服务器
            file.transferTo(new File("你想要保存的文件路径,相对路径或绝对路径"+fileName));
        return "上传文件成功";
    }

比如我设置的文件保存目录为,这是springBoot的静态资源保存位置,设置这个目录话,下载文件的时候,直接指定这个目录下的文件名字,如下载时候的url可指定为,可以不用再写下载文件的控制层了。

url: 'http://localhost:8080/file/12.jpg'

在这里插入图片描述

2 .微信小程序页面编写

文件上传的wxml页面:

<view>
<image wx:if="{{src}}" src="{{src}}"></image>
<button bindtap="choose" >选择文件</button>
<button bindtap="uploadFile">上传文件</button>
</view>

js文件:

data: {
      src:''
  },
  choose:function(){
    var that=this;
    wx.chooseImage({
      count:1,
      sizeType:['original','compressed'],
      sourceType:['album','camera'],
      success:(res)=>{
        let src=res.tempFilePaths[0];
        console.log(src);
        that.setData({
          src:src
        })
      }
    })
  },
 uploadFile:function(){
   var that=this;
   let src=this.data.src;
   if(src==''){
     wx.showToast({
       title: '请选择文件',
       icon:'none'
     })
   }
   //准备上传文件
   else{
     console.log(src);
     var fileName="12.jpg";//保存的文件名字,自定义
     var uploadTask=wx.uploadFile({
      url: 'http://localhost:8080/upload?fileName='+fileName,
      header: { 
        "Content-Type": "multipart/form-data" },//类型
       filePath: src,
       name: 'file',//和后台接收的参数名字一致
       success:(res)=>{
         console.log(res.data);
         wx.showToast({
           title: '上传成功',
         })
       },
       fail:function(res){
        console.log("错误"+res);
      }
     })
     uploadTask.onProgressUpdate((res)=>{
       console.log('上传进度',res.progress);
       console.log('已经上传的数据长度',res.totalBytesSent);
       console.log('预期需要上传的数据总长度',res.totalBytesExpectedToSend);
     })
   }
 }

文件下载的wxml页面:

<block wx:if="{{ isDownload}}">
<image src="{{src}}"></image>
</block>
<button bindtap="downlaod">文件下载</button>

文件下载的js:

data: {
    isDownload:false
  },
  downlaod:function(){
    console.log("下载");
    var that=this;
      var downTask=wx.downloadFile({
      url: 'http://localhost:8080/file/要下载的文件名字',
     success:function(res){
       if(res.statusCode===200){
         let src=res.tempFilePath;
         that.setData({
           src:src,
           isDownload:true
         })
       }
     },
     fail:function(res){
       console.log("下载失败!"+res);
     }
     
    })
    downTask.onProgressUpdate((res)=>{
       console.log('下载进度',res.progress);
       console.log('已经下载的总数据长度',res.totalBytesWritten);
       console.log('预期需要下载的数据长度',res.totalBytesExpectedToWrite);
    })
  },

3.页面截图

文件上传页面,可以看到,上传成功后,后台的数据响应给了小程序端。
在这里插入图片描述
下载文件页面,下载文件成功后,会将图片显示到当前页面。
在这里插入图片描述

  • 7
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果您下载了本程序,但是该程序存在问题无法运行,那么您可以选择退款或者寻求我们的帮助(如果找我们帮助的话,是需要追加额外费用的)。另外,您不会使用资源的话(这种情况不支持退款),也可以找我们帮助(需要追加额外费用) 随着移动互联网技术的发展和用户需求的变化,【小程序名称】应运而生,以其轻量化、便捷化的设计理念为用户提供了一种全新的服务模式。作为一款无需下载安装即可使用的应用,【小程序名称】依托于微信庞大的生态系统,让用户在微信内就能轻松实现各种功能操作。 【小程序名称】的核心功能主要集中在【具体服务领域】,例如在线购物、本地生活服务、教育学习或健康管理等。它简化了传统APP繁琐的注册登录流程,支持微信一键授权登录,极大地提升了用户体验。用户通过搜索或扫描二维码,瞬间即可开启使用,享受快速加载、流畅运行的服务。 该小程序界面设计简洁明了,布局合理,易于上手。同时,其特色功能如实时更新的信息推送、个性化推荐以及社交分享功能,让用户能够及时获取所需信息,并方便地将优质内容分享至朋友圈或好友,实现信息的高效传播与互动。 【小程序名称】注重数据安全与隐私保护,严格遵守国家法律法规和微信平台的规定,确保用户数据的安全无虞。此外,其背后的开发团队持续迭代更新,根据用户反馈不断优化产品性能,提升服务质量,致力于打造一个贴近用户需求、充满活力的小程序生态。 总结来说,【小程序名称】凭借其小巧便携、快捷高效的特性,不仅节省了用户的手机存储空间,更为用户提供了无缝衔接的便利服务,是现代生活中不可或缺的一部分,真正实现了“触手可及”的智能生活新体验。只需轻点屏幕,无限精彩尽在掌握之中。
好的,下面是基于Spring Boot搭建微信小程序后台的步骤: 1. 创建Spring Boot项目 使用Spring Initializr创建一个新的Spring Boot项目,选择Web和MySQL依赖。 2. 配置数据库连接 在application.properties文件中添加以下配置: ``` spring.datasource.url=jdbc:mysql://localhost:3306/your_database_name?useSSL=false&serverTimezone=Asia/Shanghai spring.datasource.username=your_username spring.datasource.password=your_password spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver ``` 3. 添加实体类 创建实体类,用于映射数据库表。例如,如果你的小程序需要管理用户信息,可以创建一个User实体类: ``` @Entity @Table(name = "user") public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Column(nullable = false) private String openId; @Column(nullable = false) private String nickname; @Column(nullable = false) private String avatarUrl; // 省略getter和setter } ``` 4. 添加Repository 创建Repository,用于对数据库进行操作。例如,如果你需要对User表进行增删改查,可以创建一个UserRepository: ``` @Repository public interface UserRepository extends JpaRepository<User, Long> { User findByOpenId(String openId); } ``` 5. 添加Controller 创建Controller,用于接收请求和返回响应。例如,如果你需要创建一个API,用于返回当前登录用户的信息,可以创建一个UserController: ``` @RestController @RequestMapping("/api/user") public class UserController { @Autowired private UserRepository userRepository; @GetMapping("/me") public User getCurrentUser(@RequestParam("openId") String openId) { return userRepository.findByOpenId(openId); } } ``` 6. 配置微信小程序登录 在微信小程序中,用户登录需要获取到用户的openid。在后端,可以使用微信提供的登录API获取用户的openid。 首先,创建一个配置类,用于配置微信小程序的AppId和AppSecret: ``` @Configuration @ConfigurationProperties(prefix = "wx.miniapp") public class WxMaProperties { private String appId; private String appSecret; // 省略getter和setter } ``` 在application.properties文件中添加以下配置: ``` wx.miniapp.appId=your_app_id wx.miniapp.appSecret=your_app_secret ``` 然后,创建一个工具类,用于调用微信提供的登录API: ``` @Component public class WxMaService { @Autowired private WxMaProperties wxMaProperties; private WxMaService wxMaService; @PostConstruct public void init() { WxMaDefaultConfigImpl config = new WxMaDefaultConfigImpl(); config.setAppid(wxMaProperties.getAppId()); config.setSecret(wxMaProperties.getAppSecret()); wxMaService = new WxMaServiceImpl(); wxMaService.setWxMaConfig(config); } public String getOpenid(String code) throws WxErrorException { WxMaJscode2SessionResult session = wxMaService.getUserService().getSessionInfo(code); return session.getOpenid(); } } ``` 最后,修改UserController,添加获取openid的API: ``` @RestController @RequestMapping("/api/user") public class UserController { @Autowired private UserRepository userRepository; @Autowired private WxMaService wxMaService; @GetMapping("/me") public User getCurrentUser(@RequestParam("code") String code) throws WxErrorException { String openId = wxMaService.getOpenid(code); return userRepository.findByOpenId(openId); } } ``` 至此,基于Spring Boot搭建微信小程序后台的步骤已经介绍完毕。需要注意的是,以上代码只是一个示例,实际开发中可能需要根据具体业务需求进行调整和优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值