只为小站
首页
域名查询
文件下载
登录
js实现把图片的绝对路径转为base64字符串、
blob对象
再上传
在JavaScript中,将图片的绝对路径转换为base64字符串或
blob对象
,是常见的图片上传前的预处理步骤。这通常用于将用户选择的本地图片数据化,以便于通过Ajax方式上传到服务器,同时可以避免跨域问题。下面将详细阐述这个过程。 首先,将图片的绝对路径转换为base64字符串,主要依赖于HTML5的`
`元素的`toDataURL()`方法。这个方法可以将画布的内容转换为一个data URL,即base64编码的字符串,可以直接作为`
`标签的`src`属性使用。下面是一个简单的示例: ```javascript function getBase64Image(imgPath, width, height) { var img = new Image(); img.src = imgPath; var canvas = document.createElement('canvas'); var ctx = canvas.getContext('2d'); // 确保图片加载完成 img.onload = function() { canvas.width = width || img.width; canvas.height = height || img.height; ctx.drawImage(img, 0, 0, canvas.width, canvas.height); var dataURL = canvas.toDataURL(); return dataURL; }; return img; } // 使用示例 getBase64('img/1.jpg').then(function(base64String) { console.log(base64String); }, function(err) { console.log(err); }); ``` 在这个例子中,`getBase64Image`函数接收图片路径、宽度和高度作为参数。它创建一个新的`Image`对象并设置其`src`属性为图片路径。当图片加载完成后,利用`canvas`绘制图片并调用`toDataURL`获取base64字符串。 如果图片位于不同的源(例如,跨域),浏览器出于安全考虑,会阻止在`canvas`上操作这些图片。为了解决这个问题,你可以将图片放在本地服务器下,以避免跨域问题。如示例中的`var imgSrc = "img/1.jpg";`,这样图片就在同一个源下,不会触发跨域错误。 除了base64字符串,还可以将图片转换为
blob对象
。
blob对象
是二进制大型对象,适用于处理大量数据。转换过程如下: ```javascript function imageToBlob(base64String) { return fetch(base64String.replace('data:image/jpeg;base64,', '')) .then(response => response.blob()); } // 使用示例 getBase64('img/1.jpg').then(base64String => { imageToBlob(base64String).then(blob => { // 上传
blob对象
uploadImage(blob); }); }, function(err) { console.log(err); }); ``` 在这个例子中,`imageToBlob`函数首先将base64字符串转换为fetch请求,然后将响应体转换为
blob对象
。最后,可以将这个
blob对象
通过Ajax或其他异步方法上传到服务器。 总结起来,JavaScript中处理图片上传的过程通常包括以下步骤: 1. 获取图片的绝对路径。 2. 将图片路径转换为`Image`对象。 3. 使用`canvas`绘制图片并获取base64字符串或
blob对象
。 4. 上传base64字符串或
blob对象
到服务器。 确保处理过程中遵循同源策略,必要时将图片放在本地服务器,以避免跨域问题。同时,对于大文件,使用
blob对象
上传可能更高效,因为它允许分块传输。
2024-06-22 20:55:03
51KB
图片上传
1
javascript使用
Blob对象
实现的下载文件操作示例
主要介绍了javascript使用
Blob对象
实现的下载文件操作,结合实例形式分析了javascript使用
Blob对象
下载文件相关原理、操作技巧与注意事项,需要的朋友可以参考下
2022-04-19 14:58:14
295KB
javascript
Blob对象
下载文件
1
Java从数据库中读取
Blob对象
图片并显示的方法
主要介绍了Java从数据库中读取
Blob对象
图片并显示的方法,实例分析了Java读取数据库中
Blob对象
图片的技巧与操作方法,需要的朋友可以参考下
2021-11-30 17:18:05
66KB
Java
数据库
读取
Blob对象
1
个人信息
点我去登录
购买积分
下载历史
恢复订单
热门下载
超大规模集成电路先进光刻理论与应用.pdf
画程(版本6.0.0.127)setup个人版
JPEG的Matlab实现
PowerBI视觉对象共计271组,更新日期2021.01.20日.zip
新型冠状病毒疫情_2020年东三省数学建模A题_论文展示
matlab机器人工具箱实现机械臂直线轨迹&圆弧轨迹规划
elsevier 爱思唯尔 系列期刊的word模板,template,单栏,双栏
得到品控手册7.0.pdf
Autojs 例子 源码 1600多个教程源码
Matpower中文使用手册(原名《MATPOWER手册(中文版)》).rar
matlab时频分析工具箱+安装方法+函数说明+最新版tftb.
基于yolov4-keras的抽烟检测(源码+数据集)
Monet智能交通场景应用
银行笔试 信息科技岗部分真题
适用于eNSP 1.3.00 可加载的USG6000V防火墙设备包
最新下载
创新SB1550声卡KX3552驱动 for WIN10 WIN11(完美支持64位/32位)
1986年数模美赛优秀论文
ZKEYS公有云分销系统 V5.2.0【免授权】
ZKEYS公有云分销系统 V6.0.0【免授权】
已上岸学长,西安邮电大学复试往年试题,资料
掌讯3560-杜比音效+蝰蛇音效-增量单刷包(内有说明).7z
掌讯SD8227-7.0版
STM32的CH395
调制信号识别数据集RML2016.10A
模拟人生3 1.63超级电脑
其他资源
东北大学计算机考研Java知识点笔记
android DLNA代码
ANSYS Maxwell电磁场官方培训资料.zip
ggplot2(第二版)2016年出版
数据结构课程设计——地铁建设问题(附源码)
MFC-计算器
FreeCAD0.17源码
vs2008插件
在WPF中使用淡入淡出的特效播放图片
PPT大赛获奖作品
血管检测程序(手掌,手背)
使用OpenGL实现飞机动画
时间线模糊-源码
Stability and static output feedback stabilization for a class of nonlinear discrete-time singular switched systems
单片机门禁系统完整设计项目(原理图+PCB源文件+源代码等).zip
simsun.tar
2018上半年+下半年软件设计师真题及答案详解
easybcd win10可用
lstopt5非线性数据处理软件
Visual Assist X for VS2012/2013