2012-04-27 81 views
2

我需要实现图像上传,其中缩略图旁边出现按钮..我已经实现它使用函数“getAsDataURL”,...它不工作在铬和safari ...任何解决方案?与前端图像上传问题

<script type="text/javascript"> 
    function setImage(file) { 
     if(document.all) 
      document.getElementById('prevImage').src = file.value; 
     else 
      document.getElementById('prevImage').src = file.files.item(0).getAsDataURL(); 
     if(document.getElementById('prevImage').src.length > 0) 
      document.getElementById('prevImage').style.display = 'block'; 
    } 
</script> 


<div class="uploading_block_inner"> 
           <div class="uploaded_img_inner"><img id="prevImage" style="display:none;" width="91" height="91" /></div> 
           <div class="submit_button_upload"> 
            <div class="upload"><input type="file" id="" name="myImage" onchange="setImage(this);" /></div> 
           </div> 
           <div class="upload_submit_inner"><input type="submit" name="" value="" /></div>        
          </div> 
+0

这里是我认为Mozilla的非标准getAsDataURL功能还没有被接受(并且将要删除的答案http://stackoverflow.com/questions/942105/file-data-from-input-element – GillesC 2012-04-27 07:42:51

+0

Firefox也是)。 – 2012-04-27 07:42:54

回答

0

假设您使用jQuery,我为您提供以下解决方案。

$(document).ready(function(){ 
    $('input[type=file]').on('change', setImage); 
}); 

function setImage(file) 
{ 
    if(document.all) 
    { 
    document.getElementById('prevImage').src = file.value; 
    } 
    else 
    { 
    document.getElementById('prevImage').src = file.files.item(0).getAsDataURL(); 
    } 

    if(document.getElementById('prevImage').src.length > 0) 
    { 
    document.getElementById('prevImage').style.display = 'block'; 
    } 
} 
+0

与问题中相同的代码...。 – 2012-04-27 08:07:32

+0

对不起...但没有成功... – Sachindra 2012-04-27 08:55:01

+0

我添加了jQuery文档准备好的事件处理,但原始代码 – rt2800 2012-04-27 09:00:50