上传后图片src不变
Posted
技术标签:
【中文标题】上传后图片src不变【英文标题】:image src doesnt change after upload 【发布时间】:2009-10-26 19:52:47 【问题描述】:我正在使用 Ajaxupload 插件进行上传,我在 ajaxupload 的 OnComplete 事件中使用此功能;
function degis()
var a = "<?php echo $id; ?>";
document.getElementById("imga").src = "../artwork/"+a+"/logo.jpg?dummy=371662";
document.getElementById("imga").style.width = "500px";
document.getElementById("imga").style.height = "175px";
但新上传的图片没有出现是有原因的。我试过“?dummy=371662”但没有用。
我也将它用于 ajaxupload 的 Onsubmit 事件
function updeg()
var a = "uploading.gif";
document.getElementById("imga").style.width = "50px";
document.getElementById("imga").style.height = "50px";
document.getElementById("imga").src = a;
</script>
这是这个元素的html
<img id="imga" src="../artwork/<?php echo $id; ?>/logo.jpg?dummy=371662" >
对此有何建议?
【问题讨论】:
请显示相关的 HTML。 您的 HTML 显示的内容与 JS 相同。你是说它在 HTML 中有效,但在 JS 中无效? $id 是两者之间唯一变化的东西吗? 当页面加载“imga”元素src是好的,但在上传完成后,它会调用degis()函数来改变“imga”src attr。对于新上传的图片,它显示的是旧的,我希望我能解释一下对不起 顺便说一下$id总是一样的,新上传的图片名称也是那个$id变量 【参考方案1】:根据您上面的编辑和 cmets,我认为您需要这样的东西:
function junk()
return (new Date()).getTime() + Math.round(Math.random());
function degis()
var img = document.getElementById("imga");
if (img)
img.src = "../artwork/<?php echo $id; ?>/logo.jpg?nocache=" + junk();
img.style.width = "500px";
img.style.height = "175px";
您之前绕过缓存的尝试无效,因为您的“虚拟”值每次都相同。通过使用junk()
函数,如上,每次得到不同的随机值,保证图片不会被缓存。
【讨论】:
好的,但如果没有修改,我如何在上传过程后更改图像? 哦,对不起,你在谈论高度和宽度,我正在改变它,因为 ajaxupload 的 OnSubmit 事件还有一个功能是改变高度和宽度,我正在编辑我的问题 已编辑以回答当前问题和 cmets。以上是关于上传后图片src不变的主要内容,如果未能解决你的问题,请参考以下文章