-1

jquery の Uploadify を使用してサーバーに画像をアップロードしています。ユーザーが画像を正常にアップロードしたときに私がやっていることは、この画像を古いものに置き換えたいということです。そのために、アップロードの成功した方法で画像をバインドしてます。画像の名前が以前のものと常に異なる場合は正常に機能しますが、画像の名前が古いものと同じ場合、画像は更新されず、古いものが表示されます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

画像を表示した直後に画像の最後に乱数を追加できます。そのため、現時点ではまだ読み込み中であり、常に再読み込みが強制されます。

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

イメージを変更したら、イメージのバージョン管理を試すことができます。

例: defaultProfile.png の場合、javascript コードで defaultProfile.png?v=1 に置き換えます。これにより、キャッシュからではなくサーバーから最新の画像が取得されます。

于 2012-10-18T09:46:45.103 に答える