我写了一个文件下载的功能,普通方式的文件预览没有问题
但是,我想让它在预览的时候不跳转,而是在页面内弹窗显示。
所以,我写了一个js (下面只是片段)
$.get(url_init+"download",{"fileId":fileId},function(data){ $("#win_open_mainlist").append(data); });
但是 这里响应的数据是带乱码的文本, 不是原来的图片了。
正常的请求:
Content-Disposition | inline;filename="241101_205.jpg" |
Content-Type | image/jpeg |
Date | Mon, 19 Aug 2013 10:37:20 GMT |
Server | Apache-Coyote/1.1 |
Transfer-Encoding | chunked |
Accept | text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 |
Accept-Encoding | gzip, deflate |
Accept-Language | zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3 |
Connection | keep-alive |
Cookie | JSESSIONID=8C3C78BD34FAC122DCB4AAF88F86ACE8 |
Host | localhost:8080 |
Referer | http://localhost:8080/dtbs/ProFollowUp!StartDetail?id=1000004880 |
User-Agent | Mozilla/5.0 (Windows NT 6.1; WOW64; rv:23.0) Gecko/20100101 Firefox/23.0 |
ajax请求响应的头信息是:
Content-Disposition | inline;filename="241101_205.jpg" |
Content-Type | image/jpeg |
Date | Mon, 19 Aug 2013 10:26:59 GMT |
Server | Apache-Coyote/1.1 |
Transfer-Encoding | chunked |
Accept | */* |
Accept-Encoding | gzip, deflate |
Accept-Language | zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3 |
Connection | keep-alive |
Cookie | JSESSIONID=95E5DC670FC47F4A06B548C9BCECC210 |
Host | localhost:8080 |
Referer | http://localhost:8080/dtbs/ProFollowUp!StartDetail?id=1000004880 |
User-Agent | Mozilla/5.0 (Windows NT 6.1; WOW64; rv:23.0) Gecko/20100101 Firefox/23.0 |
X-Requested-With | XMLHttpRequest |
请问应该怎么解决??
图片...何必需要ajax从服务器呢~
直接用js,设置一个img对象的src即可~
恩恩 ,谢谢,不过我取的不止是img 还有其他类型的,所以我用了option标签,实现了。
不过还是谢谢你提醒。 把分数给你吧。 也没人回答。
@打工永远没前途: Ajax这样就能搞字符串,别的都考虑用别的,基本上其他的类型,都可以用url地址搞定(pdf等...)
我知道问题的原因了, ajax请求的是xmlHttpRequest 是xml 格式的,而文件上传和下载是通过二进制文件实现的。 我直接把URL的文件加载进来就好了。