相关疑难解决方法(0)

如何将FileReader对象中的数据转换为表单数据以进行上载?

我更大的问题是我想使用HTML5拖放来允许通过CORS将图像上传到我的S3存储桶.我能够在S3中得到一些东西,但它总是最终看起来像是base64编码的内容.

myFileReader.readAsArrayBuffer(f);
//[...]

function on_onload(file_name, file_type, file_data) {
    // file_name and file_type are bound to the function via a closure,
    // file_data is passed in during the actual callback invocation.
    var xhr = new XMLHttpRequest();
    var fd = new FormData();
    // code that sets AWS credentials for fd omitted

    // _arrayBufferToBase64() just does a binary to base64 conversion 
    // as described in https://stackoverflow.com/questions/9267899/arraybuffer-to-base64-encoded-string
    fd.append('file', _arrayBufferToBase64(file_data));

    xhr.open('POST', my_aws_bucket_endpoint, true);
    xhr.send(fd);
}
Run Code Online (Sandbox Code Playgroud)

_arrayBufferToBase64()只是这个答案的循环代码.

尝试上传后foo.jpg:

$ wget [my_uri]/foo.jpg …
Run Code Online (Sandbox Code Playgroud)

javascript forms html5 xmlhttprequest

7
推荐指数
1
解决办法
4032
查看次数

Phoenix Channels如何通过套接字推送文件

我有一个具有文本输入和文件输入的表单.无论如何推送套接字提交?

如果我这样添加它

params.image = $("#new_post_image")[0].files[0]
Run Code Online (Sandbox Code Playgroud)

我的参数在频道中看起来像这样

%{image: %{}, title: "image title"} 
Run Code Online (Sandbox Code Playgroud)

elixir phoenix-framework

6
推荐指数
1
解决办法
637
查看次数

在 Angular 中将图像 url 转换为 base64

我正在努力尝试将给定的图像 url 转换为 base64 ......在我的情况下,我有一个带有图像路径的字符串

var imgUrl = `../../../../../assets/logoEmpresas/${empresa.logoUrl}`
Run Code Online (Sandbox Code Playgroud)

我怎样才能直接在 base64 中转换给定的图像 url?...我试过这篇文章。

以角度 2 将图像转换为 base64

但是这篇文章是从表单中获取图像...我该如何调整它?

javascript single-page-application typescript angular angular8

6
推荐指数
1
解决办法
1万
查看次数

将数组缓冲区转换为字符串 - 超出了最大调用堆栈大小

我们的应用程序下载了一个zip文件,但响应是二进制的.

所以我做的是将其转换为base64.它适用于大小87.7KB但响应大小为时发生错误183KB.

错误是 Uncaught RangeError: Maximum call stack size exceeded

这条线是

btoa(String.fromCharCode.apply(null, new Uint8Array(blob)))
Run Code Online (Sandbox Code Playgroud)

根据这个答案,String.fromCharCode.apply()必须更换TextEncoder.

所以我改成了

btoa(new TextDecoder('utf-8').decode(new Uint8Array(blob)))
Run Code Online (Sandbox Code Playgroud)

但是我收到了一个错误.

Uncaught DOMException: Failed to execute 'btoa' on 'Window': The string to be encoded contains characters outside of the Latin1 range.

我使用此答案的最顶部片段再次更改了它

新代码现在

btoa(unescape(encodeURIComponent(new TextDecoder('utf-8').decode(new Uint8Array(blob)))))
Run Code Online (Sandbox Code Playgroud)

下载现在可以使用,但下载zip文件已损坏.

整个代码可以在这里看到

javascript binary

5
推荐指数
1
解决办法
3490
查看次数

jsPDF PubSub 错误——“没有用于字体的 unicode cmap”

我正在尝试向 jsPDF 添加自定义字体。我将文件转换为 base64 并执行以下操作:

doc.addFileToVFS("font/rajdhani-regular-webfont.woff", base64enc);
Run Code Online (Sandbox Code Playgroud)

其中 base64enc 是 base64 编码的字符串

然后我添加字体如下:

doc.addFont('font/rajdhani-regular-webfont.woff', 'rajdhani', 'normal');

doc.setFont('rajdhani');
Run Code Online (Sandbox Code Playgroud)

但是,我不断收到以下错误

[Error] jsPDF PubSub Error – "No unicode cmap for font" – Error: No unicode cmap for font — jspdf.min.js:9068
Error: No unicode cmap for font — jspdf.min.js:9068registerTTF — jspdf.min.js:9068i — jspdf.min.js:9027:86open — jspdf.min.js:9032(anonymous function) — jspdf.min.js:6031publish — jspdf.min.js:308yt — jspdf.min.js:729:166addFont — jspdf.min.js:1286callme — freport.php:500onclick — freport.php:100
    publish (jspdf.min.js:29:5989)
    yt (jspdf.min.js:29:18435)
    addFont (jspdf.min.js:29:33701)
    callme (freport.php:500)
    onclick (freport.php:100)
Run Code Online (Sandbox Code Playgroud)

我不知道为什么会这样。

html javascript jspdf

5
推荐指数
1
解决办法
1863
查看次数

如何将文件缓冲区转换为 <img> 标签 src?

我正在开发一个应用程序,使用 Node.js 作为后端,并作为我的前端进行反应。现在我创建了一个上传文件并将其作为缓冲区类型存储在 mongodb 中的路由。我的问题是,当我在 React 应用程序中收到这些数据时,如何使用这些数据将其转换为 html 图像标签中的源属性?当我查看 mongodb 指南针时,文件属性如下所示:(非常长的字符串)

在此输入图像描述 当我查看对象本身时,当我得到它作为响应时,它看起来像这样:(数字数组); 在此输入图像描述

我尝试使用

  <img
      src={`data:${props.images[0].mimetype};base64,${props.images[0].file.data}`}
    />
Run Code Online (Sandbox Code Playgroud)

但它没有用..

在此输入图像描述

如果有人能给出答案,真的很感激!

猫鼬模型:

   images: [
    {
    file: { type: Buffer },
     filename: { type: String },
    mimetype: { type: String }
   }
  ]
Run Code Online (Sandbox Code Playgroud)

节点.js

 var multer = require('multer');

 var upload = multer({
 limits: {
  fileSize: 1000000
}
});

 app.post('/upload', upload.single('file'), async (req, res) => {
 try {
 const file = {
  file: req.file.buffer,
  filename: req.file.originalname,
  mimetype: req.file.mimetype
};
// console.log(req.file.buffer.toString('base64'));
const product = new …
Run Code Online (Sandbox Code Playgroud)

buffer mongoose mongodb node.js reactjs

4
推荐指数
1
解决办法
1万
查看次数

为什么 crypto.subtle.digest 返回一个空对象

我有以下简单的代码:

inputBytes = new TextEncoder().encode(inputString)
hashBytes = await window.crypto.subtle.digest("SHA-256", inputBytes)
console.log((typeof hashBytes) + ":  " + JSON.stringify(hashBytes))
Run Code Online (Sandbox Code Playgroud)

为什么结果是空对象?我怎样才能得到真正的结果?

这太奇怪了,非常感谢任何帮助

https://codepen.io/JhonnyJason/pen/QWNOqRJ

hash cryptography webcrypto-api

4
推荐指数
1
解决办法
6743
查看次数

在IE11中阅读Blob

我使用这篇文章使用JavaScript读取CSV文件.以下代码在Chrome和Firefox中运行良好,但IE 11会引发以下错误:

Object doesn't support property or method 'readAsBinaryString'
Run Code Online (Sandbox Code Playgroud)

打电话时:

reader.readAsBinaryString(blob);
Run Code Online (Sandbox Code Playgroud)

但是,根据这篇 MSDN文章,readAsBinaryString是一种支持的方法FileReader.我错过了什么/有没有不同的方式在IE 11中读取文件?

HTML代码:

<table>
    <tr>
        <td>Import CSV File</td>
        <td><input type="file" id="files" name="file"/></td>
    </tr>
</table>       
<button id="read" href="#">Read</button>
Run Code Online (Sandbox Code Playgroud)

JS代码:

//read a file
function readBlob() {

var files = document.getElementById('files').files;

if (!files.length) {
    alert('Please select a file!');
    return;
}

var file = files[0];
var start = 0;
var stop = file.size - 1;
var reader = new FileReader();

// If we use onloadend, …
Run Code Online (Sandbox Code Playgroud)

javascript csv blob filereader internet-explorer-11

3
推荐指数
1
解决办法
6909
查看次数

如何使用Vuejs在html中显示mysql blob图像?

我有一个这样的Vue文件,

export default {
	data(){
		return{
            info: {
                name: '',
                image: '',
              
            },
            errors: []
		}
	},
  
  created: function(){
        this.getInfo();
  },
  
  methods: {
        getInfo: function(){
              this.info.name = response.data.results[0].name;
              this.info.image = response.data.results[0].image;
        }
  }
}
Run Code Online (Sandbox Code Playgroud)

我正在将数据从该文件传递到子Vue组件中。子组件如下:

<template>
    <div class="ui items">
        <div class="item">
            <div class="ui small image">
                {{info.image}}
            </div>
        </div>
    </div>
  
</template>

<script>
export default{

    props:['info']

}
</script>
Run Code Online (Sandbox Code Playgroud)

我的图像作为Blob存储在MySQL数据库中。当我运行应用程序时,图像在UI上显示为二进制数据。对象看起来像这样,

图片的JSON响应

这里有人可以帮助我显示图像吗?非常感谢你!

html javascript mysql blob vue.js

2
推荐指数
1
解决办法
5573
查看次数

ArrayBuffer 作为源(图像标签)/显示来自 Blob 的图像

我正在尝试将数组缓冲区设置为图像标签的来源。看来我有2个问题。我的控制台正在记录:

GET unsafe:data:image/jpg;base64, [object ArrayBuffer] net::ERR_UNKNOWN_URL_SCHEME

所以我的问题是:
1. 如何将我的“blob”转换为字符串?
(如有必要:2.如何删除不安全标志?)

html:

<img src="data:image/jpg;base64, {{blob}}">
Run Code Online (Sandbox Code Playgroud)

ts(传输blob):

export class ImgViewerComponent implements OnInit {

    @Input('blob') blob: ArrayBuffer;

    constructor() { }

    ngOnInit() {
    }

}
Run Code Online (Sandbox Code Playgroud)

typescript angular

2
推荐指数
1
解决办法
8195
查看次数

Javascript:创建UTF-16文本文件?

我有一些字符串需要是一个UTF-16文本文件.例如:

var s = "aosjdfkzlzkdoaslckjznx";
var file = "data:text/plain;base64," + btoa(s);
Run Code Online (Sandbox Code Playgroud)

这将导致UTF-8编码文本文件.如何获得带字符串的UTF-16文本文件s

javascript utf-16

1
推荐指数
1
解决办法
1947
查看次数