我想做的事:
使用来自基本身份验证的安全服务器的jQuery.ajax()来HTTP-GET图像(jpeg).看起来我得到了一些图像数据,它必须是二进制的.我想将其转换为base64,因为那时我可以这样在我的html中插入这个图像:
$("#image").attr('src', 'data:image/jpeg;base64,' + base64encode(data));
Run Code Online (Sandbox Code Playgroud)
ajax调用看起来像这样:
$.ajax({
url: "someurltoajpeg",
type: "GET",
headers: {
"Authorization" : "Basic " + btoa("user:pw")
},
xhrFields: {
withCredentials: true
}
}).done(function( data, textStatus, jqXHR ) {
$("#image").attr('src', 'data:image/jpeg;base64,' + base64encode(data));
}).fail(function( jqXHR, textStatus, errorThrown ) {
alert("fail: " + errorThrown);
});
Run Code Online (Sandbox Code Playgroud)
函数base64encode看起来像这样:
function base64encode(binary) {
return btoa(unescape(encodeURIComponent(binary)));
}
Run Code Online (Sandbox Code Playgroud)
我从这里得到了这个功能: 使用Javascript检索二进制文件内容,base64对其进行编码并使用Python对其进行反向解码
他说那对他有用.但在我的情况下,我的图像的src属性被更改,并且插入了一些非常长的数据,但只有那个图像应该出现的非常小的符号.我可以保存那个"图像",甚至不存在,当我打开它时,我的图像查看器说,它不是一个jpeg文件.这不是由特定图像或相同的原始策略引起的错误.有谁解决这个问题?谢谢
我正在尝试构建一个上传程序,它分两步上传渐进文件:
我想这样做可以提前获得缩略图,而无需上传单独的缩略图.拍摄一张图像(3426398 Byte),它是jpegtran -copy all -progressive -outfile progressive.jpg original.jpg用dd if=progressive.jpg of=thumb.jpg bs=1 count=350000我创建的,然后拍摄前350000个字节,我得到了一个有效的缩略图.
有没有办法找出我需要传输多少字节才能获得所有行都可用的图像?这样只会失去图像质量?