JavaScript将img src动态设置为HTML5上传文件

JavaScript将img src动态设置为HTML5上传文件,javascript,html,jszip,Javascript,Html,Jszip,我正在使用库提取上传的epub文件。我可以成功地遍历它,并在库中显示文件名,方法是: zipEntry.name; 我可以通过字符串比较找到cover.jpg文件。如何将html页面上的图像源设置为该封面? 我试过: src=zipEntry; 及 有可能吗?使用jQuery有没有一种简单的方法?您需要知道映像所在的主机,而不仅仅是映像名称。或者将图像数据保存在base64中 load image from external (or local) host: <img src="{HO

我正在使用库提取上传的epub文件。我可以成功地遍历它,并在库中显示文件名,方法是:

zipEntry.name;
我可以通过字符串比较找到cover.jpg文件。如何将html页面上的图像源设置为该封面? 我试过:

src=zipEntry;


有可能吗?使用jQuery有没有一种简单的方法?

您需要知道映像所在的主机,而不仅仅是映像名称。或者将图像数据保存在base64中

load image from external (or local) host:
<img src="{HOST}/cover.jpg"/>

base64:
<img src="data:image/jpg;base64,R0lGODdhMAAw....." />
从外部(或本地)主机加载映像:
base64:

我尝试在页面上放置一个空图像

<img id="testimg" />
这对我有用。有关工作代码的演示,请参见此

您将需要函数
base64\u encode()
(来自):

函数base64\u编码(数据){
//phpjs.org
var b64=“abcdefghijklmnopqrstuvxyzabefghijklmnopqrstuvxyz012456789+/=”;
var o1,o2,o3,h1,h2,h3,h4,位,i=0,
ac=0,
enc=“”,
tmp_arr=[];
如果(!数据){
返回数据;
}
把三个八位组分成四个六位组
o1=data.charCodeAt(i++);
o2=data.charCodeAt(i++);
o3=data.charCodeAt(i++);
位=o18&0x3f;
h2=位>>12&0x3f;
h3=位>>6&0x3f;
h4=位&0x3f;
//使用hexets索引到b64中,并将结果附加到编码字符串中
tmp_arr[ac++]=b64.charAt(h1)+b64.charAt(h2)+b64.charAt(h3)+b64.charAt(h4);
}而(i
function base64_encode (data) {
  // phpjs.org
  var b64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
  var o1, o2, o3, h1, h2, h3, h4, bits, i = 0,
    ac = 0,
    enc = "",
    tmp_arr = [];

  if (!data) {
    return data;
  }

  do { // pack three octets into four hexets
    o1 = data.charCodeAt(i++);
    o2 = data.charCodeAt(i++);
    o3 = data.charCodeAt(i++);

    bits = o1 << 16 | o2 << 8 | o3;

    h1 = bits >> 18 & 0x3f;
    h2 = bits >> 12 & 0x3f;
    h3 = bits >> 6 & 0x3f;
    h4 = bits & 0x3f;

    // use hexets to index into b64, and append result to encoded string
    tmp_arr[ac++] = b64.charAt(h1) + b64.charAt(h2) + b64.charAt(h3) + b64.charAt(h4);
  } while (i < data.length);

  enc = tmp_arr.join('');

  var r = data.length % 3;

  return (r ? enc.slice(0, r - 3) : enc) + '==='.slice(r || 3);
}
for(i=0;i<10;i++){
document.getElementById("five_star").innerHTML = "<img alt='' src='images/activestar.png'>";
}