2011-08-01 2 views
0

이미지를 업로드 할 수있는 사이트가 있으며 선택한 이미지를 보여주는 미리보기 시스템을 사용하고 있습니다. 문제는 이미지 SOMETIMES가 미리보기 div에로드되지만 다른 시간은 동일하게 유지된다는 것입니다. 그러나 새로 고침 버튼을 누르면 이미지가 실제로 변경됩니다. 따라서 컨트롤러 동작이 확실히 호출되는 중입니다. 미리보기 이미지를 항상 새로 고쳐야하는 것은 아닙니다. 이것은 내 코드입니다 :미리보기 이미지가 항상 JQuery 및 AJAX 업로드 jQuery 플러그인을 사용하여 다시로드되지는 않습니다

<img name="liga_r2_c3" src="/../images/ligasDeAmigos/prizes/<?php print $model->prize_photo?>" width="100" height="100" border="0" id="liga_r2_c3" alt=""/> 

new AjaxUpload('liga_r2_c3', { 
      action: 'uploadImage', 
      data: { 
       liga_id : liga, 
       isPrize : 'true', 
      }, 
      onComplete: function(file, response) { 
        var liga = $("#hidden_prize_picture").val(); 
        var ruta = "/../images/ligasDeAmigos/prizes/"+liga+ '?rid=' + Math.random(); 
        $('#liga_r2_c3').attr('src',ruta); 
      } 
     }); 

답변

2

Math.random()의 예측 가능성을 고려하면 중복 임의 값으로 실행되지 않습니까? Date.getTime은 새로 고침 사이에 고유 한 식별자를 제공해야하기 때문에 여기서는 훨씬 더 나은 해결책이 될 것입니다.

<img name="liga_r2_c3" src="/../images/ligasDeAmigos/prizes/<?php print $model->prize_photo?>" width="100" height="100" border="0" id="liga_r2_c3" alt=""/> 

new AjaxUpload('liga_r2_c3', { 
      action: 'uploadImage', 
      data: { 
       liga_id : liga, 
       isPrize : 'true', 
      }, 
      onComplete: function(file, response) { 
        var liga = $("#hidden_prize_picture").val(); 
        var d = new Date(); 
        var ruta = "/../images/ligasDeAmigos/prizes/"+liga+ '?rid=' + d.getTime(); 
        $('#liga_r2_c3').attr('src',ruta); 
      } 
     }); 
+0

처음에는 똑같은 생각이 들었지만, 이전에 Math.random의 가치를 저장하고 비교해 보았습니다. 실제로 나는 달랐습니다. 실제로는 달랐습니다. : s – Soph

+0

나는 고쳐 쓴다! 난 당신의 솔루션을 시도하고 그것은 내가 그것을 썼을 때 세미콜론을 놓친 작업 coz didnt. 그것은 완벽하게 일했습니다. 대단히 감사합니다 !! – Soph

관련 문제