网站程序上传-(

1)上传陌陌小程序云开发图片(全程讲解)。

序言我

第一次写CSDN时,我不知道我写的是你教的东西。

原本是后端,我工作了6年左右,前段时间我承担了一件家务,做了Momo小程序。从技术上讲,小程序用原生+vint,后台管理系统用的Vue+Element,原本是按照正常流程把前后端分开的,但前端把裤裆拉开(HeTui~),最后因为前期用户数量不多,决定先用小程序云开发来熬过这个时期。

虽然小程序不老不老,前端只能Python,而我是

也是第一次用云开发来写前端逻辑和操作数据库,我不熟悉,我想会遇到很多坑,这就撞到了上传的坑。

需求介绍

功能要求:小程序是通常的表单提交+上传,最多三张图片,后台管理系统也上传,需要通过云开发部署静态网站,调用云函数完成所有数据交互

碎思绪:接手工作之前,我已经用测试账号做过技术验证,没有问题网站程序上传,心里总有种不安,觉得上传这块会遇到坑洼,想什么。

预技术验证

因为是第一次做,前期肯定会看很多对应的文章或者去社区,总的来说,网络文章可以分为三类:

在客户端,使用 wx.cloud.uploadFile 上传图片,将图片转换为 base64 到后台,使用 Buffer.from 传输回云存储

,使用 wx.cloud.CDN 传输大文件,并使用 Buffer.from 传输回云存储

从开始到放弃的所有方式

方式一、从感知到丢弃

如上所述,我们根本没有前端,但我们确实需要在 Web 上调用 SCF,但我希望所有的数据库操作和上传都在 SCF 中进行。因此,在网页端,只有 SDK callFunction 方法用于做数据交互,加上权限等问题,果断放弃模式 1。如果有老板要说,那以后用wx.cloud.uploadFile解决小程序,总之,迟早要解决,不如直接解决(我不,迫害,爱)。

方法二:从验证成功到莫名其妙的错误报告再到丢弃你

怎么能不认真验证没有完成的技术方案的可行性,坑乙方!(主要是怕扣我的钱,我的小钱~),咆哮着,回到正题。

一般的想法是这样的:(早期的云开发打算跳过工作并自己搜索它)。

(1)首先通过wx选择图片。

chooseImages(){
    let _this = this
    wx.chooseImage({
        count: 3,
        sizeType: ['original', 'compressed'],
        sourceType: ['album', 'camera'],
        success(res){
            const tempFilePaths = res.tempFilePaths
            _this.setData({
                images: tempFilePaths
            })
        }
    })
}

(2) 使用 wx.getFileSystemManager().readFile() 将图像转换为 base64 字符串,然后 callFunction 将传递,如果多次上传会循环。

getImageBase64(){
    wx.getFileSystemManager().readFile({
        filePath: images,
        encoding: 'base64',
		success(response){
            wx.cloud.callFunction({
                name: 'quickstartFunctions',
                config: {
                    env: '******'
                },
                data: {
                    type: 'uploadPicture',
                    path: 'images/test.png',
                    file: response.data
                },
                success(res) {
                    console.log(res)
                }
            })
        }
    })
}

(3)在云函数中接收到base64后,转回上传

const cloud = require('wx-server-sdk');
cloud.init({
  env: cloud.DYNAMIC_CURRENT_ENV
});
exports.main = async (event, context) => {
  try {
    return await cloud.uploadFile({
      cloudPath: event.path,
      fileContent: Buffer.from(event.file, 'base64')
    })
  } catch (e) {
    return e;
  }
}

魔法来了,

网站程序上传-(

技术验证顺利进行,在实际开发中,CV大法来了又变,结果上报了!错!完成!连云功能都没有进去。已报告 -404006

面对百度让我,

百度,没有找到原因,而且只要你不通过base64进入云功能,明明验证码还在,但他还是坚定地报错网站程序上传,只是我还是不知道为什么(我知道告诉女儿,女儿不容易)。

既然找不到原因,那就放弃吧,虽然世上没有什么难事,但只要愿意放弃,我就转向技能3

方式三,从失明到抑郁再到成功

wx.cloud.CDN的官方定义如下↓↓↓↓↓↓↓↓↓↓↓↓

示例代码再简单不过了

好的,我们能从中得出什么?其实什么都看不懂,大家都懂TX技术文档某些部分的模糊,总之,我在云端读书。简单来说,wx.cloud.CDN需要放在wx.cloud.callFunction中,也就是说,要传输大文件,它会在云函数中对应的数组中返回一个地址,接收你通过该地址传输的数据,以及如何获取,他!不!说!(推~)

下面我们来看看我的代码,因为我今天拿到了三天,虽然也是按照CDN方法做的,图片看不出来。明天莫名其妙的调试成功了,我还没来得及整理代码(我们拭目以待)。

获取图片的步骤和上面一样,但是为什么不复制粘贴没有现成的代码块,因为我不想让大家粘下来,主要看 imageUpload 中的代码,最后我来解释为什么后面说的 wx.cloud.callFunction 会被使用,这是一个飞虫。

解释一下,有三个参数,file,path,后缀。 file 是 CDN 地址,将 chooseImage 获得的镜像临时文件地址加载到 CDN 中,返回一个地址作为参数给云函数,path 是云存储的地址,我只传递了一个文件夹地址,其余的交给云函数生成, 后缀是文件后缀,不知道是png还是jpg传输的,保证上传的可重用性,所以找个后缀一起传递,就这么简单。

重点就在这里,如何获取 CDN 地址中的数据~请 axios,熟悉它,它是 Vue 中的 axios,恳求不要一下子。抄袭家伙!安装 npminstallaxios--保存在云函数中,先安装,否则不允许上报未定义错误。

也有人用过get,我也用过,不知道版本诱导是不是不能用require引入,云功能不能导入放弃。经过我的不懈努力!好的,看看代码

const cloud = require('wx-server-sdk')
const PARAMS = require('../params.json')         // 配置JSON
const SendData = require('../sendData/index')    // 发送数据回来的函数,加了code和是否成功
const axios = require('axios')                   // 引入axios
cloud.init({
	env: PARAMS.env
})
exports.main = async (event, context) => {
	try {
        // cloud.uploadFile可以接arraybuffer,所以获取类型设置为arraybuffer
		let imgBuffer = await axios({
		  method:'get',
		  url:event.data.file,
		  responseType: 'arraybuffer',
		  headers: { "Content-Type": "*" },
		})
        // 上传
		const cloudId = await cloud.uploadFile({
			cloudPath: event.data.path+'U'+Date.now()+event.data.suffix,
			fileContent: Buffer.from(imgBuffer.data)
		})
        // 成功后返回云储存的fileID
		return SendData(cloudId.fileID)
	} catch (e) {
		return SendData('图片上传失败', 200, false)
	}
}

你瞧

,则上传成功。

返回函数 SendData 是一个 JSON,不用担心我怎么写,我只是懒。

其他

上面刚说了CDN只能用在callFunction里,我放进imageUpload,蛊门蛙还摸着你的肚子!这就是我包裹自己的,吼。我不想每次都写wx.callFunction,呸,代码太多了!

虽然本质是callFunction,但简单介绍一下我的方法,我将callFunction封装成一个函数Call,整理请求云函数名称和数据,以及自定义加载文本,然后公开调用,构建api文件夹,引入Call,并将所有交互函数作为API进行管理。如果你有兴趣,我可以把代码扔下来,你可以喷。

如果你觉得有帮助,在做后台管理系统插件的时候,我会再发布一期如何在 VUE 项目中使用 SCF,部署,我会整理代码,继续搬砖,分散

破碎的想法:不一定会有第二个问题,虽然我很懒

程序很好选择-九月将教您最简单的网站建设

项目投资找A5快速获取准确代理名单

网站的建设,从建网站前如何选择关键词,到

如何选择虚拟主机空间,最后选择网站程序,网站的基础设施还可以。

很多同学在博客上留言,让May看到并推荐一个好的免费虚拟主机空间。九月从不使用可用空间,周围有太多人在为免费空间和廉价空间而苦苦挣扎。免费是不用的,那就去天猫花几十块钱买便宜的空间也不错。而要建一个网站,就要有目的,如果你只是测试你是否会建基础设施,那么就没有必要了,当你真的想建的时候,你就能想通了。

回到家,哪些网站程序适合网站建设?有许多网站建设者,具体取决于您要构建的网站类型:

1.讨论。用来建峰会,这是主流的首选,就不多说了。使用 PHP 语言开发。

阿拉伯数字。PowerEasy,ECMS和dedecms。内容管理系统网站程序哪个好,这三者都玩CMS。

简单的ASP,最后两个PHP

3.网上商店。主流网上商城网站建设系统。.PHP

4.Wordpress、ZBLOG。两种主流的博客构建系统。

前者是PHP,后者是ASP

九月最常用的是WP和DEDE。而八月最熟悉的就是WP,如果有合适的模板,那么WP也可以做成CMS,甚至是峰会。当然,选择最合适的程序是为了更方便、更强大。

在网站建设方面,无论是博客还是CMS。无论是个人网站还是企业网站,都没有特别的要求,我通常使用WP。在线赚钱 - 九月博客是在WP中制作的,正是博客的样子。而且南京SEO也是用WP做的,更像是一个博客,虽然这应该算是一个企业网站,严格来说,它实际上应该用CMS网站程序来完成。诺基亚6300游戏下载站采用DEDECMS制作,特别适用于下载站、信息分类站等。

这就把我们带到了这里,我相信你一定对几个问题感到非常困惑:

什么是内容管理系统,什么是PHP,

什么是ASP,PHP和ASP的区别。至于峰会,你们都知道博客,对吧?

CMS,网站内容管理系统。举个反例,一旦安装了CMS网站程序网站程序哪个好,您的网站程序部分就已经完成了,您只需要负责不断更新文章即可。CMS网站程序安装后,一般有默认模板,去首页查看,就像门户网站一样排版一样。如果你不喜欢,或者想修改图案,那就去下一个CMS模板直接应用,或者能力强的人可以直接改变模板,达到自己想要的美术效果。

简单总结一下,CMS网站程序安装完成后,只有两件事要做。 1.更改模板 2.更新文章

PHP和ASP都是属于编程程序开发的语言。有些程序是用PHP编写的,而另一些是ASP。一些网络托管空间是PHP,而另一些是ASP。因此,有必要弄清楚语言环境,利用相应的空间并构建网站程序。

这三者都适合中小型网站的快速发展,但PHP语言是开源的,互联网上有很多用PHP编写的源代码。ASP是很久以前谷歌的产品。一般来说,PHP与MYSQL(数据库)配对。在购买空间的时候,要注意分清楚,9月份第一次买ASP空间的时候,还是担心为什么没有数据库,为什么安装不了WP。

本章提供了网站程序选择的基本集成介绍。至于WP和DEDE的安装和使用,非常简单,至于使用方法,将在5月后写下来。

在线赚钱 - 九月博客 原创文章,请注明出处并保留原文链接

链接到本文:

申请商业报告并分享创业的好主意。点击这里讨论新的创业机会!

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悟空资源网 网站程序 网站程序上传-( https://www.wkzy.net/game/130003.html

常见问题

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务