只为小站
首页
域名查询
文件下载
登录
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
2022学术英语写作(东南大学) 章节测试+期末test答案
20200318附加-2019年电赛综合测评方案详细计算过程(pdf版本,有朋友反映word版本乱码,特意转为pdf)
quartus II13.0器件库.zip
芯片验证漫游指南以及源代码.zip
基于傅里叶算子的手势识别的完整源代码(Python实现,包含样本库)
多目标优化算法(二)MOEAD(附带NSGA2)的文档和代码(MATLAB)
android studio课程设计作业PPT+设计文档+可运行源代码+设计思路
云视通扫描工具.zip
多智能体的编队控制程序的补充(之前上传少了一个文件)
毕业设计:基于Python的网络爬虫及数据处理(智联招聘)
适用于eNSP 1.3.00 可加载的USG6000V防火墙设备包
Spring相关的外文文献和翻译(含出处).zip
工程伦理_李正风,丛杭青,王前_北京:清华大学出版社 , 2016.08_P329.pdf
mingw-w64-install.exe
最新下载
典型降压斩波电路的ZVS仿真文件
IAR库函数STM8S003定时器1产生正弦波
KNDPLCV5.4.2.rar
微信快速回复聊天助手自动吸附微信支持QQ企业微信钉钉TIM千牛.exe
激光原理 第六版全 周炳琨编著(清晰版)课本教材+习题解答
Iocomp.Instrumentation.WF40
世纪科怡档案管理系统V5.0(网络注册版)
全国62个城市的白膜数据
2019互联网面试题第2季.mmap
jython-standalone-2.7.0(最新版本)
其他资源
python dlib 训练人脸特征点检测器
CMMI标准文档模板(最全)
学生网上在线自测系统-毕设
CTF 隐写术经典例题讲解
vhdl并行转串行输出
VMTK Tutorials
Linear Algebra and Its Applications 5th David C
bbs论坛源码 数据库 静态页面
在树莓派上创建无线热点
test_case.xlsx
visual c++减少exe文件体积大小 vc通过修改配置项,使MFC生成的20KB的EXE变得只有9KB.zip
server.yml
期末考试数据库系统教程PPT(施伯乐)
简单的java多人聊天小程序
openssl 结合 IOCP的例子
Struts + Hibernate 分页实现
Elecard StreamEye Tools
完整的QPSK-MSK-QAM-OFDM调制解调m程序.rar
《编译原理》全套的课程资源
基于卷积神经网络的车牌字符识别_董峻妃
leetcode(含python、java、c)代码合集
像计算机科学家一样思考Python 中文(第一版+第二版)