2013-06-01 1 views
-1

그림을 클라이언트 컴퓨터에서 업로드하고 싶습니다.HTML 및 자바 스크립트에서 그림을 동적으로로드하십시오.

다음과 같이 처리하고 있습니다. 모든 것은 괜찮지 만,이 코드는 IE9 작동하지 않습니다 (일부 이전 버전) :

코드 (자바 스크립트) : HTML에 대한

function readURL(input, image_id) { 
'use strict'; 
if (input.files && input.files[0]) { 
    var reader = new FileReader(); 

    reader.onload = function (e) { 
     $("#" + image_id).width("auto"); 
     $("#" + image_id).height("auto"); 
     s = input.files[0].name; 
     $("#" + image_id).attr('src', e.target.result); 
    }; 

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

그리고 코드 :

   <div id = "id_divpic"> 
        <div class="myfileupload-buttonbar"> 
         <label class="myui-button"> 
          <span>Your picture</span> 
          <form> 
           <input type="file" name="video" accept="image/jpg,image/gif,image/bmp,image/jpeg,image/xbm" id = "id_filepic" onchange="readURL(this, 'id_image');" /> 
          </form> 
         </label> 
        </div> 
        <div id = "id_picture"> 
         <div id="id_imgInner"> 
          <div id="id_imgBack"></div> 
          <img id="id_image" src="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs%3D" onmousedown="return false" alt="Your picture"/> 
         </div> 
        </div> 
             </div> 

코드에서 잘못된 점은 IE8,9에서 작동하지 않는다는 것입니다.

코드를 실행하려면 어떻게해야합니까?

감사합니다 :) IE를 들어

답변

0

IE8에서 필터 AlphaImageLoader (CSS)를 사용합니다.

가에 대한 세부 정보를 참조하십시오 : http://msdn.microsoft.com/en-us/library/ms532969(v=vs.85).aspx

// #ID 이미지 - 태그를.

// #id_filepic - 태그

$("#id_image").css("filter", 
    "progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=myscale)"); 
// for declaring. 

    document.getElementById("id_image").filters.item(
     "DXImageTransform.Microsoft.AlphaImageLoader").src = 
     document.getElementById("id_filepic").value; 

에주의, 이미지를 설정할 때, 제대로하기 위해서는 있도록, 이미지 크기 (특히 폭> 높이) 자궁강 수 있습니다 지연이 있음 크기, 이런 식으로 넣어야합니다.

setTimeout(function() { 
      // get size. 
     }, 1000); 

제 문제는 완전합니다.

감사합니다. 어쨌든.

1

에서, FileReader API는 IE 8 및 9 용 Internet Explorer 10에서 지원됩니다, 대안은 액티브 FileSystemObject입니다.

IE and local file reading을 참조하십시오.

+0

좋아,하지만 단추를 열고 파일 대화 상자를 열면 (실제로 IE9에서도 수행됩니다) 파일 이름을 먼저 가져옵니다. IE8/IE9에서 파일 대화 상자를 연 후에 어떻게 파일 이름을 가져올 수 있습니까? 또한 내 코드로 - input.value를 참조하면 문자열이 : c : \ fakedpath \ myfile.jpg이므로 FileSystemObject를 사용하는 데 문제가 있습니다. 감사합니다 :) – Eitan