2013-11-18 2 views
0

Я использую uploadifive для загрузки изображения на страницу профиля пользователя. Пользователь открывает страницу профиля с помощью кнопки «Фото» и «Загрузить». Как только пользователь загрузит изображение, он будет изменен и перенесен в папки аватаров. Изображения сохраняются как user_id.jpg. Если пользователь обновляет страницу, изображение обновляется. Я хотел бы обновить эту картинку без обновления страницы. Uploadifive имеет функцию OnUploadComlete, и я думал, что просто буду использовать это, чтобы опубликовать новое изображение, но это не работает, либо он кэшируется, либо какая-то другая причина.Обновить изображение профайла пользователя после загрузки

Вот код:

<script> 
    $('#file_profile').uploadifive { 
     ... 
     onUploadComplete : function() { 
      $('#uphoto').html('<img src="images/avatars/'+<?=$_user['id']?>+'.jpg" />'); 
     } 
    }); 
</script> 


<?php 
    <div id="uphoto"><img src="images/avatars/'+<?=$_user['id']?>+'.jpg" /></div> 
?> 

Есть ли способ, чтобы идти по этому поводу?

+1

Если проблема кэширования, вы можете избежать этого, просто добавив случайную строку в качестве параметра в img src, что-то вроде: images/avataras/ID.jpg? Somerandomstring. – Babblo

+0

Похоже, вам нужно перезагрузить изображение профиля с помощью AJAX –

+1

В случае кэширования попробуйте что-то вроде http://www.yoursite.com/images/avatar_ID.jpg#randomstuffhere_or_datetime или http://www.yoursite.com/images /avatar_ID.jpg?randomstuffhere_or_datetime –

ответ

0

Просто добавьте случайное число в качестве параметра к вашей ссылке, чтобы загрузить изображение. Браузеры загружают его снова, если нет той же ссылки.

$('#uphoto').html('<img src="images/avatars/'+<?=$_user['id']?>+'.jpg?'+Math.random()+'" />'); 
Смежные вопросы