国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

微信小程序原生上傳圖片和預(yù)覽+云函數(shù)上傳

這篇具有很好參考價(jià)值的文章主要介紹了微信小程序原生上傳圖片和預(yù)覽+云函數(shù)上傳。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

1.前臺(tái)頁(yè)面

1.1wxml問(wèn)阿金

<!-- 說(shuō)明一個(gè)上傳頁(yè)面的按鈕 -->
<button type="primary" bindtap="uploadPage">上傳頁(yè)面展示</button>
<!-- 聲明一個(gè)上傳服務(wù)器的按鈕 -->
<button type="warn" bindtap="uploadSever">上傳服務(wù)器</button>
<!-- 實(shí)現(xiàn)點(diǎn)擊圖片有個(gè)預(yù)覽效果  -->
<view wx:for="{{imgSrcArr}}" bindtap="uploadPreview" wx:key="index" class="img">
<!-- 動(dòng)態(tài)展示圖片 -->
<image class="pic" src="{{item.tempFilePath}}" />
<!-- 刪除圖片 -->
<!-- catchtap并阻止其冒泡到父元素,因?yàn)楦冈赜衭pdatePreview時(shí)間 -->
<view class="delete-button" catchtap="deleteImage" data-index="{{index}}">刪除</view>
</view>

展示

?原生圖片上傳,微信小程序,微信小程序,小程序

?

1.2js文件

1.2.1 uploadPage

說(shuō)明:調(diào)用方法就是屬性值是一個(gè)函數(shù),因此要注意this問(wèn)題。要將this指向原來(lái)的位置。

  uploadPage() {
    // 改變this,特別是調(diào)用方法
    // 說(shuō)明:調(diào)用方法就是屬性值是一個(gè)函數(shù),因此要注意this問(wèn)題
    let that = this
    wx.chooseMedia({
      count: 9, //表示可以選擇的最大圖片數(shù)量限制,這里設(shè)置為 9 表示最多可以選擇 9 張圖片
      mediaType: ['image'], //表示媒體文件的類型,在這里設(shè)置為 ['image'] 表示只能選擇圖片類型的文件
      sourceType: ['album', 'camera'], //表示可以選擇的媒體來(lái)源,這里設(shè)置為 ['album', 'camera'] 表示可以從相冊(cè)或相機(jī)進(jìn)行選擇
      camera: 'back', //表示前后攝像頭的選擇,默認(rèn)為后置攝像頭。當(dāng)然設(shè)置的就是后置攝像頭
      success(res) {
        that.setData({
          // 可以上傳多張圖,通過(guò)es6解構(gòu)數(shù)組的方式
          imgSrcArr: [...that.data.imgSrcArr, ...res.tempFiles]
        })
      }
    })
  },

展示?

說(shuō)明:點(diǎn)擊上傳頁(yè)面展示,在這里我點(diǎn)擊了兩次?!

?原生圖片上傳,微信小程序,微信小程序,小程序

1.2.2uploadPreview

說(shuō)明:需要學(xué)習(xí)Array.map方法的使用。

  // 圖片預(yù)覽
  uploadPreview() {
    let that = this
    wx.previewImage({
      current: "", // 當(dāng)前顯示圖片的http鏈接
      // 說(shuō)明map方法就是遍歷數(shù)字然后生成一個(gè)新的數(shù)組,item就是遍歷的數(shù)組里面的對(duì)象,返回tempFilePath
      urls: that.data.imgSrcArr.map(item => item.tempFilePath)
       // 需要預(yù)覽的圖片http鏈接列表,[url,url]這樣的
    })
  },

?展示

說(shuō)明:點(diǎn)擊圖片后全屏顯示?

原生圖片上傳,微信小程序,微信小程序,小程序

1.2.3deleteImage按鈕

說(shuō)明:點(diǎn)擊刪除按鈕刪除圖片

  // 刪除圖片
  deleteImage(event) {
    // 解構(gòu)拿到數(shù)組的索引
    const {
      index
    } = event.currentTarget.dataset;
    // 拿到圖片數(shù)組
    const {
      imgSrcArr
    } = this.data;
    // 刪除當(dāng)前索引,刪除長(zhǎng)度為1
    imgSrcArr.splice(index, 1);

    this.setData({
      imgSrcArr: imgSrcArr
    });
  },

sass文件

// 圖片
.img {
  position: relative;

  .pic {}
// 圖片里面的按鈕
  .delete-button {
    position: absolute;
    top: 0;
    right: 0;
    padding: 4px;
    font-size: 15px;
    color: #ffffff;
    background-color: #BDA066;
    border-radius: 5px;
  }
}

??原生圖片上傳,微信小程序,微信小程序,小程序

說(shuō)明:如果不寫catchtap="deleteImage",因?yàn)槭录芭莸搅烁冈兀|發(fā)了uploadPreview事件。

原生圖片上傳,微信小程序,微信小程序,小程序

1.2.4 上傳圖片到服務(wù)器

說(shuō)明:使用原生的上傳圖片目前我只能一張一張上傳,因此我是采用了map方法使用,遍歷數(shù)組每個(gè)值,進(jìn)行上傳。

  uploadSever() {
    let that = this
//拿到圖片的url地址,map使用
    that.data.imgSrcArr.map(item => {
      wx.uploadFile({
        url: '***********', //服務(wù)器地址
      //圖片的地址
        filePath: item.tempFilePath,
        // 前臺(tái)必須傳遞image,后臺(tái)規(guī)定的字段。
        name: 'image',
        success(res) {
          console.log(res);
        }
      })
    })
  },

?展示,圖片存在云數(shù)據(jù)庫(kù)的位置

?2.后端邏輯

說(shuō)明:為了自己能夠看,不再闡釋說(shuō)明。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-735406.html

import cloud from '@lafjs/cloud'
import { S3, PutObjectCommand } from "@aws-sdk/client-s3";
import fs from 'fs'

const s3 = new S3({
  endpoint: cloud.env.OSS_EXTERNAL_ENDPOINT,
  region: cloud.env.OSS_REGION,
  credentials: {
    accessKeyId: cloud.env.OSS_ACCESS_KEY,
    secretAccessKey: cloud.env.OSS_ACCESS_SECRET,
  },
  forcePathStyle: true,
});
// 正文開(kāi)始,這才是內(nèi)容
export async function main(ctx: FunctionContext) {

  const image = ctx.files[0]

  // 判斷前臺(tái)上傳的圖片是否包含 images 字段
  if (image.fieldname !== "image") {
    // 如果不存在 images 字段,則返回錯(cuò)誤信息
    return {
      statusCode: 400,
      body: JSON.stringify({
        error: 'Missing images field in the request.'
      })
    };
  }
  // 將圖片的臨時(shí)位置讀取了
  const fileContent = fs.readFileSync(image.path); // 能夠上傳成功,展示圖片是花的

  const bucket = "”************************"; // 這里改成你要上傳的云儲(chǔ)存名稱

  // 文件的路徑,存儲(chǔ)位置就是images文件夾
  const path = "/images/" + image.filename

  const command = new PutObjectCommand({
    // 儲(chǔ)存桶的位置
    Bucket: bucket,
    // 文件的路徑
    Key: path,
    Body: fileContent,
    ContentType: image.mimetype,
  });

  let res
  try {
    res = await s3.send(command)
    // console.log("文件上傳成功:", res);
  } catch (error) {
    return error
  }
  let { $metadata: { httpStatusCode } } = res
  let { filename } = ctx.files[0]
  let fileObject = { httpStatusCode, filename }
  return fileObject
}

到了這里,關(guān)于微信小程序原生上傳圖片和預(yù)覽+云函數(shù)上傳的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 微信小程序-圖片預(yù)覽圖

    微信小程序-圖片預(yù)覽圖

    有時(shí)候圖片列表圖片過(guò)小看不清圖片內(nèi)容,這時(shí)我們一般就希望點(diǎn)擊圖片可以放大顯示進(jìn)行預(yù)覽,那么,接下來(lái)我們就調(diào)用微信原生API的的瀏覽圖片程序進(jìn)行對(duì)圖片預(yù)覽的實(shí)現(xiàn)。 通過(guò)微信原生API實(shí)現(xiàn)單張圖片的瀏覽 wxml代碼 添加對(duì)應(yīng)js的點(diǎn)擊事件,調(diào)用預(yù)覽圖片的API,實(shí)現(xiàn)圖

    2024年02月08日
    瀏覽(103)
  • 微信小程序點(diǎn)擊圖片放大預(yù)覽,新頁(yè)面中全屏預(yù)覽圖片

    微信小程序點(diǎn)擊圖片放大預(yù)覽,新頁(yè)面中全屏預(yù)覽圖片

    第一步:在wxml中定義image組件,并設(shè)置綁定事件。 第二步:在js中設(shè)置需要預(yù)覽圖片的URL數(shù)組, 切記一定要是數(shù)組 ,即使一張圖也要是數(shù)組,不能直接字符串賦值。 2.1 data數(shù)據(jù)設(shè)置 2.2 綁定事件函數(shù)編制 3.wx.previewImage組件官方調(diào)用指南 4、效果預(yù)覽

    2024年02月11日
    瀏覽(91)
  • 微信小程序(二)微信小程序選擇本地圖片顯示并預(yù)覽(實(shí)現(xiàn)左右滑動(dòng))

    微信小程序(二)微信小程序選擇本地圖片顯示并預(yù)覽(實(shí)現(xiàn)左右滑動(dòng))

    在微信小程序里面實(shí)現(xiàn)選擇圖片然后預(yù)覽是一個(gè)非常普遍的功能,在我們上傳圖片文件的時(shí)候,都會(huì)選擇本地的圖片進(jìn)行上傳,在上傳之前會(huì)查看一下自己上傳的圖片是否準(zhǔn)確。所以要做到預(yù)覽圖片。 下面就實(shí)現(xiàn)一個(gè)簡(jiǎn)單的本地圖片顯示預(yù)覽的功能~~ 1、創(chuàng)建頁(yè)面 這里我直接

    2024年02月03日
    瀏覽(94)
  • 微信小程序wx.previewImage實(shí)現(xiàn)圖片預(yù)覽

    在微信小程序中, wx.previewImage 函數(shù)用于預(yù)覽圖片,可以將一組圖片以輪播的方式展示給用戶,并支持用戶手勢(shì)操作進(jìn)行切換。 使用 wx.previewImage 函數(shù)需要傳入一個(gè)參數(shù)對(duì)象,該對(duì)象包含以下屬性: current : String,必填,當(dāng)前顯示圖片的鏈接/路徑。 urls : Array,必填,需要預(yù)覽

    2024年02月06日
    瀏覽(99)
  • 微信小程序基于vant和springboot實(shí)現(xiàn)附件上傳和預(yù)覽

    微信小程序基于vant和springboot實(shí)現(xiàn)附件上傳和預(yù)覽

    圖片上傳和預(yù)覽在移動(dòng)端應(yīng)用非常廣泛和頻繁,vant組件庫(kù)van-uploader組件已經(jīng)幫我們實(shí)現(xiàn)了大部分功能,但是在系統(tǒng)中頻繁使用還是有點(diǎn)麻煩,我們根據(jù)自身的業(yè)務(wù)系統(tǒng)重新封裝了一下簡(jiǎn)化我們的開(kāi)發(fā)。后端使用springboot集成jcifs實(shí)現(xiàn)文件管理微服務(wù)。 附件上傳 附件預(yù)覽 組件介

    2024年02月09日
    瀏覽(102)
  • springboot+微信小程序?qū)崿F(xiàn)文件上傳下載(預(yù)覽)pdf文件

    實(shí)現(xiàn)思路: 選擇文件 wx.chooseMessageFile ,官方文檔: https://developers.weixin.qq.com/miniprogram/d e v/api/media/image/wx.chooseMessageFile.html 上傳文件 `wx,uploadFile` , 官方文檔:https://developers.weixin.qq.com/miniprogram/dev/api/network/upload/wx.uploadFile.html 查看所有上傳的pdf文件,顯示在頁(yè)面上 點(diǎn)擊pdf文件

    2024年02月08日
    瀏覽(96)
  • 微信小程序接收二進(jìn)制流文件(圖片預(yù)覽,文件打開(kāi))

    ?下面通過(guò)downloadOaFile接口獲取到二進(jìn)制流,即res.data 注意?。?!直接用downloadOaFile獲取的二進(jìn)制流文件在寫入時(shí)會(huì)導(dǎo)致文件損壞,必須在uni.request對(duì)象的屬性中加上 如果不加,默認(rèn)是 這一點(diǎn)非常重要,踩了好久的坑,而且這兩點(diǎn)的區(qū)別在network的response中還看不出來(lái),因?yàn)閮烧?/p>

    2024年02月16日
    瀏覽(106)
  • 微信小程序上傳圖片寫法

    小程序上傳圖片需要用到小程序API中的wx.uploadFile()方法。以下是一個(gè)基本的示例代碼: 在這個(gè)示例代碼中,首先使用wx.chooseImage()方法讓用戶選擇一張圖片,然后通過(guò)wx.uploadFile()方法將選中的圖片上傳到指定的接口地址。在上傳成功后,我們可以在success回調(diào)函數(shù)中獲

    2024年02月11日
    瀏覽(226)
  • 微信小程序使用本地圖片在真機(jī)預(yù)覽不顯示的問(wèn)題解決

    開(kāi)發(fā)工具上本地圖片可以顯示,但是在真機(jī)上預(yù)覽的時(shí)候不能顯示 通常我們代碼路徑是代碼是這樣寫的 最后發(fā)現(xiàn)路徑這樣寫在真機(jī)預(yù)覽上無(wú)法顯示 解決辦法 路徑需要相對(duì)于根目錄來(lái)寫 路徑直接使用網(wǎng)絡(luò)圖片地址寫 這樣就可以解決真機(jī)預(yù)覽圖片不顯示問(wèn)題了。 如果路徑?jīng)]有

    2024年02月11日
    瀏覽(100)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包