2012-01-09 2 views
0

Я в значительной степени не знаю, как придумать altertnative для FileReader() в этой ситуации. Я знаю, что могу позвонить, если FileReader() не определено, чтобы сделать что-то еще, но что еще мой вариант.Альтернатива FileReader() javascript

Спасибо,

HTML -

<form method='post' enctype='multipart/form-data' action='#'> 
<div style="height: 200px;"> 
<div class="droparea spot logoupload"> 
<div class="instructions"><img class="previewlogo" src="http://wmemusic.com/wme/admin/img/loginlogo.jpg" alt="Click or Drag image here to add login logo"/> 
</div> 
<input type="file" class="droparea spot logoupload" name="logo" onchange="readURL(this);"/> 
</div> 
</div> 
</form> 

CSS -

.droparea { 
       position:relative; 
       text-align: center; 
       min-height:100px; 
       margin:0; 
      } 

      .droparea div, .droparea input { 
       position: absolute; 
       top:0; 
       right:2px; 
       width: 100%; 
       height: 100%; 
      } 
      .droparea input { 
       cursor: pointer; 
       opacity: 0; 
      } 
      .droparea .instructions { 
       border: 2px dashed #ddd; 
       max-height:200px; 
       height:auto; 
       min-height:100px; 
       overflow:hidden 
      } 
      .droparea .instructions.over { 
       border: 2px dashed #000; 
       background: #ffa; 
      } 


      #areas { width: 480px; } 
      div.spot { 

       margin: 5px auto; 

      } 
      .logoupload {width: 262px; 
       min-height: 100px; 
       height:auto;} 

JAVASCRIPT -

function readURL(input) { 
if (input.files && input.files[0]) { 
    var reader = new FileReader(); 
    var imgHeight = $(".previewlogo").height(); 

    reader.onload = function(e) { 
     $('.previewlogo').attr('src', e.target.result) 
     $('.droparea').attr('style', 'height:', imgHeight, 'px;') 
    }; 

    reader.readAsDataURL(input.files[0]); 
} 
} 

Я мог бы использовать это, чтобы обнаружить: if (typeof FileReader !== "undefined")

+0

Я не знаю ни одного другого варианта; вот в чем причина, по которой материал HTML5 был разработан. – Pointy

+0

право, но сафари решили не использовать его, и, согласно caniuse.com, он не выглядит, как есть какие-либо планы по его включению. –

+0

'URL.createObjectURL' - одна из альтернатив – Endless

ответ

0

ФайлReader был реализован в Safari v.6. Для более старых версий используйте Post Ajax-запрос на простой сценарий PhP, который будет эхо-обратно.

Смежные вопросы