extjs显示oracle中的图片,不再服务器上生成文件,解决Extjs上传图片无法预览的解决方法...

复制代码 代码如下:

{

width: 450,

fileUpload: true,

fieldLabel: '选择图片',

items: [{

xtype: 'textfield',

id: 'up_forth',

name: 'up_forth',

inputType: 'file',

width: 300

}]

}

预览box

复制代码 代码如下:

{

columnWidth: .18,

bodyStyle: ' margin:4px 10px 10px 5px',

layout: 'form',

items: [{

xtype: 'box',

autoEl: {

width: 150, height: 150,

tag: 'div',

id: 'browser_up_forth'

}

}]

}

myfrom表示上传控件外围的FormPanel,, contril_id表示上传控件的ID,只要在程序上预览注册该方法就可以,preview (myfrom,'up_forth' );

复制代码 代码如下:

var preview = function (myform, control_id) {

var img_reg = /\.([jJ][pP][gG]){1}$|\.([jJ][pP][eE][gG]){1}$|\.([gG][iI][fF]){1}$|\.([pP][nN][gG]){1}$|\.([bB][mM][pP]){1}$/

myform.on('render', function (f) {

myform.form.findField(control_id).on('render', function () {

Ext.get(control_id).on('change', function (field, newValue, oldValue) {

var obj = Ext.get(control_id).dom;

var url = getFullPath(obj);

if (img_reg.test(url)) {

var newPreview = Ext.get('browser_' + control_id).dom;

var showPic = Ext.get("showPic_" + control_id);

if (showPic != null) {

showPic.remove();//删除原来的图片

}

var imgDiv = document.createElement("div");

imgDiv.id = "showPic_" + control_id;

document.body.appendChild(imgDiv);

imgDiv.style.width = "150px";

imgDiv.style.height = "150px";

imgDiv.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod = scale)";

imgDiv.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = url;

newPreview.appendChild(imgDiv);

}

}, this);

}, this);

}, this);

}

//得到图片地址

function getFullPath(obj) {

if (obj) {

// ie

if (window.navigator.userAgent.indexOf("MSIE") >= 1) {

obj.select();

return document.selection.createRange().text;

}

// firefox

else if (window.navigator.userAgent.indexOf("Firefox") >= 1) {

if (obj.files) {

return obj.files.item(0).getAsDataURL();

}

return obj.value;

}

return obj.value;

}

}

时间: 2012-03-19

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值