首页新闻找找看学习计划

ajax用后台得到的图片文件如何在前台实例化出来展示在html中?

0
悬赏园豆:10 [已解决问题] 解决于 2016-09-07 14:31

最近用到了zyUpload这个图片上传插件,在图片上传成功后,success回调函数中有两个参数(file,response),其中file就是图片文件的源文件。

 

 

其实我本可以将图片路径放在response中返回给前台,实现上传后的预览,后来想想它既然都将图片返回给你了,直接用图片不是更好的选择吗?但是问题来了,不知道怎么将图片实例化出来。

 

 

 

问题补充:

我知道,这肯定是个小问题,可是不知道就是不知道,而且又很想知道,总之,蛮烦的,希望各位帮我解惑。

Naylor的主页 Naylor | 初学一级 | 园豆:9
提问于:2016-09-06 18:03
< >
分享
最佳答案
1
var xhr = new XMLHttpRequest();
        xhr.open("get", "/test/export", true);
        xhr.responseType = "blob";
        xhr.onload = function () {
            debugger;
            if (this.status == 200) {
                var blob = this.response;
                window.location = window.URL.createObjectURL(blob);
                //window.URL.revokeObjectURL(img.src);
            }
        }
        xhr.send();
或许有用

 

收获园豆:10
小小高 | 小虾三级 |园豆:533 | 2016-09-07 09:40

ie低版本不支持。。

小小高 | 园豆:533 (小虾三级) | 2016-09-07 09:41

对的!就是window.URL.createObjectURL()这个函数!  

 

我寻找的就是这样的一个函数,它可以从图片的源文件中提取出来该图片的路径,将这个路径赋值给一个img标签就可以显示那个图片了。

 

 贴上相应的代码图片,有兴趣的可以研究一下,也欢迎找我讨论。=_=*

 

 

Naylor | 园豆:9 (初学一级) | 2016-09-07 14:28

@Naylor: 亲,给几个豆子鼓励下咯

小小高 | 园豆:533 (小虾三级) | 2016-09-07 14:29

谢谢! 十分感谢! 

Naylor | 园豆:9 (初学一级) | 2016-09-07 14:30
其他回答(4)
0

你是想让图片在前台显示出来吗?

我是一个xiaocainiao | 园豆:9 (初学一级) | 2016-09-06 18:35

恩呢,后台返回了这个图片文件,我的困惑是怎么将这个图片文件装在html标签中。 

支持(0) 反对(0) Naylor | 园豆:9 (初学一级) | 2016-09-07 13:56
0

你是要这种功能吗?如下图:

如果是的,那可以看看这个例子demo:http://www.mycodes.net/169/7090.htm

雨之秋水 | 园豆:640 (小虾三级) | 2016-09-06 19:41

额,这个就是zyupload提供的图片上传的界面嘛。这个是在上传之前,选择要上传的图片的时候,我那个是在图片上传到后台,后台处理后,onsuccess事件里面。 

支持(0) 反对(0) Naylor | 园豆:9 (初学一级) | 2016-09-07 13:59

@Naylor: 那你取你图片存储之后的路径用img标签展示就行了,难道你存储了之后不知道怎么获取存储的图片路径?

支持(0) 反对(0) 雨之秋水 | 园豆:640 (小虾三级) | 2016-09-07 15:48
0

把图片地址取出来之后赋值给img标签的src就可以了

凌晨肆丶的洛杉矶 | 园豆:138 (初学一级) | 2016-09-06 21:30

恩呢,对的,我后台可以将图片路径放在response中给前台。但是我看到这个插件也返回了这个图片文件的源文件,所以就想尝试将这个图片文件装载到huml中。 

支持(0) 反对(0) Naylor | 园豆:9 (初学一级) | 2016-09-07 14:00
0

一个页面可以用两次zyupload吗

天道-酬勤 | 园豆:192 (初学一级) | 2017-07-11 15:26

zyupload是一个个人开发者封装的,然而里面的大部分源代码都是借用其他的开源的项目的源代码,所以,这个东西其实就是一个拼装的脚本库,单方面来说,有很大的优点,但是综合起来,任然有不足,比如你的这个问题,它就不能实现。另外,你可以研究下它的源代码,适当的改改,其实也是可以实现一个页面用两次的。

支持(0) 反对(0) Naylor | 园豆:9 (初学一级) | 2017-07-11 16:59

我还得啰嗦几句。。。

这个插件其实并不是太友好,体积大,兼容性不是太好,能受宠很大的一点是易用,如果你想写出高质量的代码,建议不要用。

支持(0) 反对(0) Naylor | 园豆:9 (初学一级) | 2017-07-11 17:00
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册