blobhtml 图片传到blob后台并返回链接

在 SegmentFault,学习技能、解决问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。
问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
1.最近在尝试用node.js 做语音识别 用的是百度的api 现在碰到了解决不了的问题 录音的库 返回的是一个blob 我做了各个方面的尝试 我得需求是这样的 通过web录音然后获取到blob 对象 然后通过$.post()的方式将这个blob传入node中 然后再通过node写入一个wav的文件 2.$.post()中的data 不能传入对象 3.blob 序列化 通过fileReader 序列化后 过长4.网上查到了一个blob-to-buffer 的库 要求传过来的是一个blob对象 所以现在希望最好是能直接将blob对象传到后台
代码如下:后台创建的一个录音 blob对象
encodeWAV: function () {
var sampleRate = Math.min(this.inputSampleRate, this.outputSampleRate);
var sampleBits = Math.min(this.inputSampleBits, this.oututSampleBits);
var bytes = this.compress();
var dataLength = bytes.length * (sampleBits / 8);
var buffer = new ArrayBuffer(44 + dataLength);
var data = new DataView(buffer);
var channelCount = 1;//单声道
var offset = 0;
var writeString = function (str) {
for (var i = 0; i & str. i++) {
data.setUint8(offset + i, str.charCodeAt(i));
// 资源交换文件标识符
writeString('RIFF'); offset += 4;
// 下个地址开始到文件尾总字节数,即文件大小-8
data.setUint32(offset, 36 + dataLength, true); offset += 4;
// WAV文件标志
writeString('WAVE'); offset += 4;
// 波形格式标志
writeString('fmt '); offset += 4;
// 过滤字节,一般为 0x10 = 16
data.setUint32(offset, 16, true); offset += 4;
// 格式类别 (PCM形式采样数据)
data.setUint16(offset, 1, true); offset += 2;
data.setUint16(offset, channelCount, true); offset += 2;
// 采样率,每秒样本数,表示每个通道的播放速度
data.setUint32(offset, sampleRate, true); offset += 4;
// 波形数据传输率 (每秒平均字节数) 单声道×每秒数据位数×每样本数据位/8
data.setUint32(offset, channelCount * sampleRate * (sampleBits / 8), true); offset += 4;
// 快数据调整数 采样一次占用字节数 单声道×每样本的数据位数/8
data.setUint16(offset, channelCount * (sampleBits / 8), true); offset += 2;
// 每样本数据位数
data.setUint16(offset, sampleBits, true); offset += 2;
// 数据标识符
writeString('data'); offset += 4;
// 采样数据总数,即数据总大小-44
data.setUint32(offset, dataLength, true); offset += 4;
// 写入采样数据
if (sampleBits === 8) {
for (var i = 0; i & bytes. i++, offset++) {
var s = Math.max(-1, Math.min(1, bytes[i]));
var val = s & 0 ? s * 0x8000 : s * 0x7FFF;
val = parseInt(255 / (65535 / (val + 32768)));
data.setInt8(offset, val, true);
for (var i = 0; i & bytes. i++, offset += 2) {
var s = Math.max(-1, Math.min(1, bytes[i]));
data.setInt16(offset, s & 0 ? s * 0x8000 : s * 0x7FFF, true);
return new Blob([data], { type: 'audio/wav' });
通过点击传后台
$('#download').click(function(){
var url = recorder.getBlob();
console.log(url) //获取到blob
//Blob {size: 44, type: "audio/wav"}
console.log(JSON.stringify(url))//这样序列化 blob 直接变成空
var reader = new FileReader();
reader.readAsText(url)
// reader.onloadend = function(e) {
var result = reader.
$.post('yuyin',{voiceData:result},function(data){
console.log(data)
console.log(result)
// 上面这个方式过长
$.post('yuyin',{voiceData:JSON.stringify(url)},function(data){
console.log(data)
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
var fd = new FormData();
fd.append('fname', 'test.wav');
fd.append('data', soundBlob);
type: 'POST',
url: '/yuyin',
processData: false,
contentType: false
}).done(function(data) {
console.log(data);
分享到微博?
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要该,理由是:
在 SegmentFault,学习技能、解决问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。在 SegmentFault,学习技能、解决问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。
问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
应用场景如下:用压缩了客户端的文件,并通过ajax异步发送到服务端,服务端接收到压缩过后的文件,将文件直接保存到服务器目录下[直接在服务器文件目录下保存成zip文件],然后当客户端需要某个文件的时候,将服务器端的zip包传递到客户端,并在客户端解压,提取需要的文件即可。现在的问题是:使用JSzip压缩的文件是个promise对象类型,怎么向后退传递呢?我使用了正常的ajax提交,将这个blob对象放入到data域中,后台springMVC接收时使用的参数是object,这样可以接收到,但是无法解析数据:
const reader = new FileReader();
reader.readAsDataURL(file);
reader.onloadend = function(e) {
var result = reader.
var objName = 'example';
获取obj文件的文件名
if (file.name.indexOf('.obj') !== -1) {
var num = file.name.indexOf('.obj');
objName = file.name.substring(0, num);
console.log(objName);
result = convertBase64UrlToBlob(result);
zip.file(file.name, result, {type: 'blob'});
console.log(zip);
console.log(file.name + ' ,大小为: ' + file.size / 1024 + 'KB');
var obj = zip.generateAsync({
这个方法压缩完了以后返回的是一个promise对象
type: 'blob',
compression: 'DEFLATE', //
force a compression for this file
compressionOptions: { //
使用压缩等级,1-9级,1级压缩比最低,9级压缩比最高
}).then(function(data) {
// promise对象中的数据只能在then方法中取到
console.log(data.value);
components.jszipSend('Model/jszip', data);
console.log(data);
// see FileSaver.js
console.log(obj); //
必须这么打印才行如果前面加上字符串就无法打印出这个obj
浏览器:后台:
如何解析成正常的file文件类型,或者不管什么类型能够让后台解析这个文件呢?
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
把Blob对象分装成FormData对象,就像表单上传文件一样去处理。
var formData = new FormData();
formData.append("filename", "my-file.zip");
// JavaScript file-like 对象
formData.append("file", data);
var request = new XMLHttpRequest();
request.open("POST", "/jszip");
request.send(formData);
对后台来说就是前端post过来一个表单
同步到新浪微博
分享到微博?
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要该,理由是:
在 SegmentFault,学习技能、解决问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。博主最新文章
博主热门文章
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)博客分类:
公司开发人员提这样一问题,
测试环境有一张含有BLOB字段的A表。里面有20条数据。
正式环境A表有100条数据。
现在想把测试环境A表里的数据增量的导入到正式环境。怎么弄?
环境说明一下,
测试环境和正式环境都是oracle 10g for linux。
分析一下,
这个问题本质在于有BLOB字段。
(miki西游 @mikixiyou 文档 ,链接:
解决方法,
我列了这样一个解决步骤,
1、将测试库A表,CTAS一下成一张新表,如B表。
2、将B表用exp导出,或者expdp导出。
3、将导出的文件数据导入到正式库上。
4、在正式库上,你就会看到B表数据了,是不,100条的那个。
5、在正式库上,将B表数据插入到A表上,这里插入有啥条件判断的,自己根据逻辑去处理一下。
其实这个步骤还是烦了点。得知测试库和正式库的A表数据是不重复的,那么连A表CTAS成B表的操作都不要做了。
在imp时加一个ignore=y或impdp时加CONTENT=DATA_ONLY。
还有一点,切记。在正式库操作之前,备份一下A表。
一直觉得,开发人员学习一下expdp/impdp知识会有帮助,求人不予求己。
你觉得我说的对吗?
您可以参考下列文档:
这是两份关于expdp和impdp使用总结。
说了半天不明白楼主主要想表达什么呢?impdp/expdp 是对于本机使用的我看你这个情况用dblink跟好使些吧可能是我表达不清楚。大意是将测试库上一个表上数据如果复制到生产库上同样的一张表中去。生产库上这种表已经有数据了。这个和普通的表数据复制有一点区别是,此表有 BLOB 字段。测试库和生产库的网络压根不通的,所以dblink不可用。
浏览: 809595 次
来自: 南京
浏览量:254601
请问对于“如果非主键字段值发生改变,则不会同步过去”这种情况, ...
挺好的,支持一下
不错,原来是用户oracle 的所属组的问题
zhangyuslam 写道如果担心全局索引失效,可以使用如下 ...
(window.slotbydup=window.slotbydup || []).push({
id: '4773203',
container: s,
size: '200,200',
display: 'inlay-fix'博主最新文章
博主热门文章
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)}

我要回帖

更多关于 mybatis返回值为blob 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信