Extjs 使用'下载图像/文本文件;iframe';
我正在使用Extjs-4.1.0,我想提示下载窗口。我用了“iframe”。仅当正在发布的文件为zip/mp3时,该窗口才会显示,但当正在发布的文件为文本/图像文件时,该窗口不会显示。是否要设置某些属性以启用文本/图像/不同文件的下载窗口 请在下面找到我的代码Extjs 使用'下载图像/文本文件;iframe';,extjs,extjs4,download,Extjs,Extjs4,Download,我正在使用Extjs-4.1.0,我想提示下载窗口。我用了“iframe”。仅当正在发布的文件为zip/mp3时,该窗口才会显示,但当正在发布的文件为文本/图像文件时,该窗口不会显示。是否要设置某些属性以启用文本/图像/不同文件的下载窗口 请在下面找到我的代码 var record = item.findParentByType('itemcontextmenu').record; Ext.Ajax.request({ url : ORT.Conf
var record = item.findParentByType('itemcontextmenu').record;
Ext.Ajax.request({
url : ORT.Configuration.DOWNLOAD_GRAPHICS_URI+"&graphics="+record.get('id'),
success: function (response, opt) {
result = Ext.decode(response.responseText);
try {Ext.destroy(Ext.get('graphicsDownloadIframe'));}catch(e) {}
Ext.core.DomHelper.append(document.body, {
tag: 'iframe',
id:'graphicsDownloadIframe',
css: 'display:none;visibility:hidden;height:0px;',
src: result.fileName,
frameBorder: 0,
width: 0,
height: 0
});
}
});
这一切都是关于mimetype和你的浏览器如何处理它。所以我想你的问题会是这个。这可能会导致浏览器对接收到的文件进行不同的处理 编辑 下面是我仍然使用的帮助器类
Ext.ux.util.HiddenForm = function(url,fields){
if (!Ext.isArray(fields))
return;
var body = Ext.getBody(),
frame = body.createChild({
tag:'iframe',
cls:'x-hidden',
id:'hiddenform-iframe',
name:'iframe'
}),
form = body.createChild({
tag:'form',
cls:'x-hidden',
id:'hiddenform-form',
action: url,
target:'iframe'
});
Ext.each(fields, function(el,i){
if (!Ext.isArray(el))
return false;
form.createChild({
tag:'input',
type:'text',
cls:'x-hidden',
id: 'hiddenform-' + el[0],
name: el[0],
value: el[1]
});
});
form.dom.submit();
return frame;
}
用法
服务器接受这些参数并建立一种“FileStreamResult”,它触发客户端的下载。如果您使用的是.Net或Java之类的语言,那么已经有一些实现可以使用,如果您使用的是PHP,您可能会发现很有帮助。无论如何,看看你的后端…这是否意味着我必须在浏览器中进行一些设置,而不必更改上面提到的代码?@Supereme否,你需要查看服务器以及在标题中写入的内容。mimetyp、文件名等都很重要,否则浏览器不会将其识别为下载。。我需要在Ajax.request中设置DefaultHeader吗?但我确实使用了它(试图设置“接受编码”)。它似乎不起作用,但不会被覆盖。它的默认值是:“gzip,deflate”@Supereme我猜你误解了我;我没有谈到前端,我谈到了将文件流回到客户端的服务器。这一切都取决于服务器的响应。。。我将发布我使用的隐藏iframe帮助程序的版本…是的,它将帮助我很多
Ext.ux.util.HiddenForm('http://localhost/file/fetch',[['PropName','PropValue'],['Prop2Name','Prop2Value']])