-1

我正在使用 jquery 的 Uploadify 在服务器上上传图像。现在当用户成功上传图片时我在做什么,我想用旧图片替换这张图片。为此我绑定了uploadify的图像onsuccess方法,如果图像的名称总是与前一个不同,它工作正常,但如果图像的名称与旧的相同,它不会刷新图像,它仍然显示旧的image.here是我的代码:

   var WishId = "";
   var ImagePath = $('[id$=hdnImgPath]').val();
   var DefaultImagePath = $('[id$=hdnDefaultImagePath]').val();
   $("[id$=fpFiles]").uploadify({
       'swf': 'Swf/uploadify.swf',
       'uploader': 'Resources/Handlers/UploadProfilePic.ashx',
       'progressData': 'speed',
       'cancelImg': 'Images/Grid_ActionDelete.gif',
       'fileSizeLimit': '1MB',
       'fileTypeExts': '*.gif; *.jpg; *.png',
       'auto': true,
       'multi': false,
       'buttonText': 'Select',

       'onSelect': function () {
           WishId = $('[id$=hdnWishId]').val();
           $('#lnkUpload' + WishId).show(250);
       },
       'onUploadStart': function (file) {
           $("[id$=fpFiles]").uploadify('settings', 'formData', { 'WishID': "'" + WishId + "'" });
    },
    'onUploadSuccess': function (file, data, response) {
        data = data.replace('"', '').replace('"', '');
        if (data != '') {
            alert(data);
            $('[id$=imgUsersProfilePic]').attr('src', ImagePath + data);
            // $('#hdnImageName' + WishId).val(data);
        } else {
            $('#img' + WishId).attr('src', DefaultImagePath + 'defaultProfile.png');
        }
    }
});

请让我知道我必须做什么才能显示最新图像而不回发,当我刷新页面时,它显示最新图像时还有一件事。让我知道我错在哪里。

更新: 我知道这张图片来自缓存,但我无法删除缓存,如果我也会删除用户会话。所以我需要一些替代品...

4

2 回答 2

0

更改图像后,您可以尝试对图像进行版本控制。

例如:对于 defaultProfile.png,将其替换为 javascript 代码中的 defaultProfile.png?v=1。这将从服务器而不是从缓存中获取最新图像。

于 2012-10-18T09:46:45.103 回答
0

您可以在显示图像后立即在图像末尾添加一个随机数,因此目前仍在加载并使用它,总是强制再次加载它。

$('[id$=imgUsersProfilePic]')
     .attr('src', ImagePath + data + '?' + Math.random());
于 2012-10-18T10:49:56.120 回答