使用uni-app的uni.chooseImage获取的图片路径,存储到数据库中,无法在前端展示该路径的图片

news2024/11/18 17:33:38

html,js,uni-app,

首先我在uni-app中使用如下方法添加图片

uni.chooseImage({
					count: 1, //count: 6, //默认9
					sizeType: ['original', 'compressed'], //可以指定是原图还是压缩图,默认二者都有
					sourceType: ['album'], //从相册选择
					success: function(res) {

						console.log(JSON.stringify(res.tempFilePaths));

					}
				});

通过uni.chooseImage获取的图片路径如图所示,是“http://tmp/wx……”开头的

之后在浏览器界面,想展示该路径图片

结果如下,路径正确,但是不显示图。

 原因如下:image-tools - DCloud 插件市场

uni-app、微信小程序和5+APP使用的路径不支持网络路径

解决方法:

我的做法是把路径转化为base64,这个格式的图片可以在前端展示~

1、下载插件,点击绿色的,然后打开,选择你的项目,这个真的很快(我经常担心插件安装过程麻烦,但这个真的很快)image-tools - DCloud 插件市场

 

 之后,项目中会出现这个

2、修改uni-app中代码,先引入 

import {pathToBase64} from '../../js_sdk/mmmm-image-tools/index.js'

 接着修改uni.chooseImage里代码

uni.chooseImage({
					count: 1, //count: 6, //默认9
					sizeType: ['original', 'compressed'], //可以指定是原图还是压缩图,默认二者都有
					sourceType: ['album'], //从相册选择
					success: function(res) {
						console.log(JSON.stringify(res.tempFilePaths));
						//解决跨越问题,让通过微信上传的图片你能够展示在浏览器前端
						uni.getImageInfo({
							src: res.tempFilePaths[0],
							success: (path) => {
								pathToBase64(path.path).then(base64 => {
										console.log("base64="+base64); // 这就是转为base64格式的图片
									})
									.catch(error => {
										console.error(error)
									})
							}
						})

					}
				});

 输出结果如下,真的很多,从划红线的地方往后(展示不全)

 3、最开始数据库设计的是varchar,但明显报错了,在微信开发者工具的控制台提示“length”的问题,这里没有截图。

在IDEA项目中,提示如下报错

 所以这个时候需要修改数据库中字段类型,通过借鉴广大网友的文章。尝试了mediumtext类型。

不知道为啥,遇到了一些情况。

后来尝试了longtext,实现了想要的效果,(字段长度刚开始我设置了20000,但保存后是0,应该不用特意设定就可以)。

 

好啦,这样就可以把数据存入数据库中了

 

 最后前端效果如图所示

 参考了一些文章,如下:

1、根据这篇,解决了数据库字段长度问题

图片以base64格式存储进数据库 字段使用类型_Architect_csdn的博客-CSDN博客_base64 字段类型

2、根据这两篇,提供解决问题思路,学会转base64格式

image-tools - DCloud 插件市场

3、 了解了base64格式的数据开头部分的含义

在HTML中显示base64格式的img图片_viceen的博客-CSDN博客_html加载base64图片

4、这篇,特有意思。跟着方法3做了,结果往下一滑,更新后说H5上不能转了╮(╯▽╰)╭

小程序 本地临时文件tempFilePaths和base64互转_liu__software的博客-CSDN博客 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/409452.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【vue2】vue2中的性能优化(持续更新中)

⭐ v-for 遍历避免同时使用 v-if ⭐ v-for 中的key绑定唯一的值 ⭐ v-show与v-if对性能的影响 ⭐ 妙用计算属性 ⭐ 使用防抖与节流控制发送频率 ⭐ 路由守卫处理请求避免重复发送请求 ⭐ 使用第三方UI库的引入方式 【前言】 该系列是博主在使用vue2开发项目中常用上的一…

JavaScript ,18种常用数组方法,快来看看你会吗?

前言 众所周知,向后端请求数据,处理数据是前端工程师必备的技能,从后端请求回来的数据往往是数组的形式返回到前端,因此数组处理方法的重要性可想而知;数组的处理方法在MDN文档上很多,很多朋友在学习时往往…

vue配置代理服务器proxy

一、跨域。 跨域本质是浏览器基于同源策略的一种安全手段 所谓同源(即指在同一个域)具有以下三个相同点 协议相同(protocol)主机相同(host)端口相同(port) 非同源请求&#xff0c…

vue集成海康h5player实现播放

文章目录前言准备工作视频demo官方文档官方工具开源工具开始开发效果问题点前言 本篇章只针对官方提供个h5player工具,做播放和分屏demo。 当然本篇章也是针对已经接触了海康视频对接的开发者。 准备工作 视频demo 官方文档 API https://open.hikvision.com/d…

Not allowed to load local resource: file:///,浏览器禁止访问浏览器图片,文件解决方法

Not allowed to load local resource: file… 错误出现原因:浏览器出于安全考虑禁止直接读取本机文件(链接以file:///开头), 解决办法: 创建一个web服务器,将文件放在这个服务器里,让文件有一个在线地址&#xff08…

【小程序项目开发-- 京东商城】uni-app之商品列表页面 (下)

🤵‍♂️ 个人主页: 计算机魔术师 👨‍💻 作者简介:CSDN内容合伙人,全栈领域优质创作者。 🌐 推荐一款找工作神器网站: 点击跳转牛客网 |笔试题库|面试经验|实习招聘内推| 还没有账户的小伙伴 速速点击链接…

推荐几个优秀的echarts 图表网站,让你轻松搞定全部报表

1.PPChart - 让图表更简单让图表更简单。PPChart 提供 Echarts 收录、图表制作等服务http://ppchart.com/#/ 2.https://madeapie.com/#/echarts图表制作,Make A Pie,Made A Pie,echarts案例分享,echarts教程分享https://madeapie…

PHP连接数据库MySQL打造xxx管理系统,实现简单的增删改查功能

目录 前言 概述 内容 创建数据库表 实现列表 新增用户 删除用户 编辑用户 前言 最近刚学完PHP和Mysql,历时半个多月时间完成了这样一个简单的算是人员管理系统吧,为了加深印象总结一下,还有很多不足之处,希望大家多多指正,一…

vue点击变色

vue点击一个遍历后元素改变其颜色的方法,有两种情况,第一种是点击单行元素变色,点击另一行元素时,原来变色的元素变回原来的颜色,始终只有一行元素是变色的,第二种情况是点击后永久变色,点击其他…

手把手教你部署前端项目

手把手教你部署前端项目 1.1 用Vue-cli构建简易前端项目 1.1.1 安装 Vue CLI 包 打开命令行工具,执行下列命令来安装 Vue CLI 包: npm install -g vue/cli可以用下面的命令查看是否安装成功: vue --version1.1.2 创建一个项目 新建一个…

背景图片相关应用-铺满,自适应

1.首先了解一下背景相关属性 background-color: 颜色。 background-position: 位置。 数值,或者top,right,bottom,left等,center:距离页面左边的定位,0px:距离页面上面的定位 background-si…

Cesium3Dtilesets 使用customShader的解读以及泛光效果示例

前言:光带原理在旋转弹跳四棱锥这篇文章里早已经阐述过,但还是有不少靓仔靓女可能会感到疑惑,在3Dtilesets里怎么使用?为啥我在网上看到的为数不多的代码示例我看不懂?是由于没理解透彻导致的。借此机会,提…

SocketIO介绍+SpringBoot整合SocketIO完成实时通信

Socket.IO笔记 即时通信是基于TCP长连接,建立连接之后,客户段/服务器可以无限次随时向对端发送数据,实现服务器数据发送的即时性 HTTP HTTP是短链接,设计的目的是减少服务器的压力 HTTP伪即时通讯 轮询 emmet长轮询 long pulling…

vue打包之后出现空白页的原因以及解决方式

路由模式 history 新建项目什么都不动,路由模式:history, 直接npm run build打包 打包之后,直接打开dist文件里面的ndex.html可以看到页面是空白的,控制台是这样的。 再看看网页源码, 对比dist文件夹结构可以看到资源路径的引入…

【前端】React使用react-markdown+antd实现引入渲染markdown文件

项目中遇见一个需求,要求直接在浏览器打开markdown文件进行预览,初次使用遇见一些坎坷,以下记录实现过程,将其封装成了一个组件。 1.下载依赖 yarn add react-markdown//其余样式插件: yarn add remark-gfm yarn …

vue+springboot使用文件流实现文件下载

前言 本次将使用vue和springboot通过文件流的方式教大家怎么去实现文件的下载,那么话不多说,我们直接开始 相关vue导出文件 以下链接为我其他vue进行下载导出文件文章 vue实现把字符串导出为txt 步骤 文件路径 要进行下载的话,我们肯定…

WEB核心【案例:文件下载,案例:点击切换验证码,几种获取properties资源方式】第十二章

目录 1.文件下载 1.1超链接下载: 1.2自定义servlet下载 1.3小结 2.点击切换验证码 2.1前置只是-验证码生成 2.2分析及代码实现 2.3需求2:点击切换验证码-绕过缓存 3.几种获取preperties资源方式 💟作者简介:大家好呀&…

CTF中Web题目的各种基础的思路-----入门篇十分的详细

我期间也考察很多人的,但搞这个的确实有点少,希望这篇可以大家一点帮助,这篇文章也借鉴一些人的文章,还有很多东西,我没搞,确实有点麻烦,但以后还会不断更新的,希望大家在web这里少走…

Web系统常见安全漏洞介绍及解决方案-CSRF攻击

🐳博客主页:拒绝冗余 – 生命不息,折腾不止 🌐订阅专栏:『Web安全』 📰如觉得博主文章写的不错或对你有所帮助的话,还望大家多多支持呀! 👉关注✨、点赞👍、收…

CSS基本布局——grid布局

grid布局简介: Grid布局是将容器划分成“行”和“列”,产生单元格,然后指定“项目所在”的单元格,可以看作是二维布局。 基本概念: 容器(container)——有容器属性项目(items&…