html

<l-form name="goods" l-form-btn-class="l-form-btn-class" bind:linsubmit="submit"
>
<l-form-item label="商品分类:"rules="{{goods.goods_type}}" name="goods_type">
<l-input id="goods_type" hide-label show-row="{{false}}"/>
</l-form-item> <l-form-item label="商品属性:" roles="{{goods.goods_attr}}" name="goods_attr">
<l-input id="goods_attr" hide-label show-row="{{false}}"/>
</l-form-item> <l-form-item label="标题:" name="goods_name" roles="{{goods.goods_name}}">
<l-input id="goods_name" hide-label show-row="{{false}}"/>
</l-form-item> <l-form-item label="商品描述:" name="desc" roles="{{goods_name}}">
<l-textarea border="{{false}}" roles="{{desc}}" id="desc" value="{{desc}}" />
</l-form-item>
<l-image-picker size="4" bind:linchange="onChangeTap" />
<view slot="submit">
<l-button>提交</l-button>
<iew>
<view slot="reset">
<l-button type="default" plain>重置</l-button>
<view>
</l-form>
js

  Page({

  /**
   * 页面的初始数据
   */
  data: {
    TimeID: -1,
    goods_img:[],
    goods:{
      goods_type:{
        required: true,
        message: '分类不能为空',
        trigger: 'change'
      }
    }
    
   },

  onChangeTap(e){
    let that=this
    let token=wx.getStorageSync('token')
    e.detail.current.map(filePath=>{
      wx.uploadFile({
        filePath: filePath,
        name: 'file',
        // url: 'http://www.zy.com/api/upfile',
        url: `${http}upfile`,
        header:{token},
        success:res=>{
          let json=JSON.parse(res.data)
//文件追加数组
          this.data.goods_img.push(json.data)
          console.log(json.data);
        }
      })
    })
  },

  submit(event){
    console.log();
    if (!event.detail.isValidate) {
      return false
    }
      let desc=event.detail.desc
      let goods_attr=event.detail.values.goods_attr
      let goods_name=event.detail.values.goods_name
      let goods_type=event.detail.values.goods_type
      let goods_img=this.data.goods_img
      let token=wx.getStorageSync('token')
      wx.request({
        url: `${http}goods`,
        data:{desc,goods_attr,goods_name,goods_type,goods_img},
        method:"POST",
        header: {
          'content-type': 'application/json', // 默认值
          token
        },
        success:res=>{
          console.log(res);
          if (res.data.code == 200) {
            wx.showToast({
              title: '添加成功',
            })
          }else{
            wx.showToast({
              title: '添加失败',
            })
          }
        },
        fail:ret=>{
          wx.showToast({
            title: '系统错误',
          })
        }
      })
  },

laravel 控制器代码:

  public function upload(Request $request)
{
DB::beginTransaction();
$file = $request->file('file');
// 百度云检测图片
$res=(new BaiDuCkeck())->imageAudit($file);
try {
$res=Oss::oss($file);
DB::commit();
// 返回上传之阿里云oss的图片链接
return ['code'=>200,'msg'=>'ok','data'=>$res];
}catch (\Exception $exception){
DB::rollBack();
return ['code'=>500,'msg'=>$exception->getMessage(),'data'=>[]];
}

效果图:

方式2 :简单实现

wxml

<l-form name="goods" l-form-btn-class="l-form-btn-class" bind:linsubmit="submit"
>
<view>
<l-image-picker size="4" bind:linchange="onChangeTap" />
</view>
<view slot="submit">
<l-button>提交</l-button>
</view>
</l-form>

wx.json

{
"usingComponents": {
"l-image-picker":"/miniprogram_npm/lin-ui/image-picker",
"l-form":"/miniprogram_npm/lin-ui/form"
}
}

wx.js

// liu ui 图片上传
onChangeTap(evt) {
evt.detail.current.map(filePath => {
wx.uploadFile({
filePath: filePath,
name: 'file',
url: 'http://www.yan.com/exam20/image',
header: {
'Content-Type': 'multipart/form-data'
},
success: res => { let json = JSON.parse(res.data)
//文件追加数组
this.data.goods_img.push(json.data) } }) }); }, submit(evt) {
// 获取到文件传输的值
let goods_img=this.data.goods_img
// 将值添加入库即可 },

laravel控制器:

/**
* 接受微信小程序端传过来的图片
*/
public function image(Request $request){
$imgUrl=$request->file('file')->getPathname();
// 验证图片链接
$res=BaiduService::imageCheck($imgUrl);
if ($res){
// 阿里云文件上传
$result=OssImageServerice::ossImage($imgUrl);
return response()->json(['code'=>200,'message'=>'文件检测结果合规,文件已经上传至阿里云服务器','data'=>$result]);
}else{
return response()->json(['code'=>500,'message'=>'文件不合规,上传失败','data'=>'']);
} }

微信小程序文件上传结合lin ul的更多相关文章

  1. 微信小程序文件上传至七牛云(laravel7)

    1 wxml: <view> <form bindsubmit="dopost"> <view> <label>真实姓名</l ...

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

    本文介绍了如何在微信小程序开发中使用腾讯官方提供的云开发功能快速实现图片的上传与存储,以及介绍云开发的 5G 存储空间的基本使用方法,这将大大提高微信小程序的开发效率,同时也是微信小程序系列教程的视频 ...

  3. 快速高效实现微信小程序图片上传与腾讯免费5G存储空间的使用

    本文介绍了如何在微信小程序开发中使用腾讯官方提供的云开发功能快速实现图片的上传与存储,以及介绍云开发的 5G 存储空间的基本使用方法,这将大大提高微信小程序的开发效率 对于一般的图片上传功能开发,我们 ...

  4. 微信小程序图片上传并展示

    1.首先编写微信小程序的页面和样式: index.js var total = []; Page({ data: { perImgSrc: [] }, onLoad: function (option ...

  5. 小程序文件上传uploadFile

    前台代码: bindPhoto(e) { var that = this; wx.chooseImage({ count: 1, sizeType: ['original','compressed'] ...

  6. 微信小程序---图片上传+服务端接受

    原文地址:http://blog.csdn.net/sk719887916/article/details/54312573 微信小程序,图片上传,应用地方-修改用户信息的头像. 详细代码: 小程序的 ...

  7. 微信小程序图片上传和裁剪

    本篇博客用于解决微信小程序图片裁剪问题 图片裁剪常用于头像选择和图片合成等. 图片裁剪解决方案: 目前网络上知名的微信小程序图片裁剪插件是we-cropper(文末有链接) 操作步骤:下载好we-cr ...

  8. 微信小程序开发——上传代码片段到git仓库

    微信开发者工具除了自带的git版本管理(本地服务)之外,还可以推送到在线git仓库中去,这样别人也可以通过git来拉取你的代码片段或小程序. 一.1.登录git 一.2.点击创建项目  一.3.填写项 ...

  9. 微信小程序代码上传,审核发布小程序

    1.打开微信开发者工具 管理员扫码 -> 填写好小程序的项目目录.AppID(必须是客户已注册好的AppID).项目名称 2.在app.js中修改id(客户登录后台管理系统的id),app.js ...

随机推荐

  1. TensorFlow 入门 | iBooker·ApacheCN

    原文:Getting Started with TensorFlow 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译 不要担心自己的形象,只关心如何实现目标.--<原则>,生活原 ...

  2. java下载网络大文件之内存不够的解决办法(包含分片上传分片下载)

    一.背景 2020年11月份的时候,我做过一个项目,涉及到网络文件,比如第三方接口提供一个文件的下载地址,使用java去下载,当时我全部加在到JVM内存里面,话说,单单是80M的下载单线程没问题,但是 ...

  3. SQL的多表查询(笛卡尔积原理)

    感谢大佬:https://blog.csdn.net/yang5726685/article/details/53538438 MySQL的多表查询(笛卡尔积原理) 先确定数据要用到哪些表. 将多个表 ...

  4. iOS 模糊、精确搜索匹配功能方法总结 By HL

    字符串搜索主要用于UITableView的搜索功能的筛选,过滤,查询 下面是一些流行的搜索查询方法 一.遍历搜索 for循环 根据要求:精确搜索(判读字符串相等)   模糊搜索(字符串包含) 相关知识 ...

  5. Ubuntu20.04 安装MongoDB及其基本使用

    MongoDB 官方文档 本博客旨在自我学习使用,如有任何疑问请及时联系博主 基本介绍 MongoDB 是由C++语言编写并基于分布式文件存储的开源数据库. MongoDB 是一款介于关系数据库和非关 ...

  6. 01网络编程(基础知识+OSI七层协议+TCP与UDP)

    目录 01 网络编程 一.软件开发架构 1.1 CS架构 1.2 BS架构 二.网络理论前戏 2.1 简介 2.2 常见硬件 三.OSI七层协议(五层) 3.1 七层协议 3.2 五层协议 3.3 知 ...

  7. 同事提出个我从未想过的问题,为什么Kubernetes要"多此一举"推出静态Pod概念?

    同事提出个我从未想过的问题,为什么Kubernetes要"多此一举"推出静态Pod概念? 我们知道k8s中Pod可以说是一个合格的容器小管家,Pod 被设计成支持多个容器可以一起进 ...

  8. Solution Set - Border Theory

      我发现写 Solution Set 就不用写每道题的题意了,岂不美哉?   首先是一些奇妙结论.   定理 1(弱周期定理) 对于字符串 \(S\),若 \(S[:p]\) 和 \(S[:q]\) ...

  9. Solution -「JOISC 2021」「LOJ #3495」聚会 2

    \(\mathcal{Description}\)   Link.   给定一棵含 \(n\) 个结点的树.称点集 \(S\) 到结点 \(u\) 的会合距离为 \(\sum_{v\in S}\ope ...

  10. MyBatis封装JDBC具体实现

    关于xml等解析的工具基本均包含在org.apache.ibatis.builder包中,有包名可知基本使用建造者模式.这个包的主要功能两个: 1.解析XML配置文件和映射文件,xml子包中: 2.解 ...