>  기사  >  웹 프론트엔드  >  Node.js는 이미지 업로드 및 일반 display_javascript 기술을 구현합니다.

Node.js는 이미지 업로드 및 일반 display_javascript 기술을 구현합니다.

WBOY
WBOY원래의
2016-05-16 15:24:331507검색

프로젝트에서 아바타 업로드를 자주 사용하는 경우, 이를 구현하는 방법은 무엇입니까?

첫 번째는 HTML 레이아웃입니다.

<label for="thumbnail" class="col-md-3 control-label">缩略图</label>
<div class="col-md-6">
 <input type="file" class="form-control" id="thumbnail" name="thumbnail">
</div>

jquery 메서드는 IE에서 지원되지 않지만 IE는 절대 업로드 경로 정보를 얻습니다.

function getObjectURL(file) {
 var url = null ;
 if (window.createObjectURL!=undefined) { // basic
  url = window.createObjectURL(file) ;
 } else if (window.URL!=undefined) { // mozilla(firefox)
  url = window.URL.createObjectURL(file) ;
 } else if (window.webkitURL!=undefined) { // webkit or chrome
  url = window.webkitURL.createObjectURL(file) ;
 }
 return url ;
}

$('#thumbnail').change(function() {
 var eImg = $('<img />');
 eImg.attr('src', getObjectURL($(this)[0].files[0])); // 或 this.files[0] this->input
 $(this).after(eImg);});

온라인에서 사용 가능한 코드를 찾는 것은 쉽지 않습니다. 지속적인 검토와 요약을 통해 모든 파일 업로드 디스플레이와 호환되는 것으로 나타났습니다
HTML 레이아웃

<form action='' method='post' name='myform'>
 <input type='file' id='iptfileupload' onchange='show()' value='' />
 <img src='1.jpg' alt='' id='img' />
</form>

JS 코드:

<script type="text/javascript">
  function getPath(obj,fileQuery,transImg) {

   var imgSrc = '', imgArr = [], strSrc = '' ;

   if(window.navigator.userAgent.indexOf("MSIE")>=1){ // IE浏览器判断
    if(obj.select){
     obj.select();
     var path=document.selection.createRange().text;
     alert(path) ;
     obj.removeAttribute("src");
     imgSrc = fileQuery.value ;
     imgArr = imgSrc.split('.') ;
     strSrc = imgArr[imgArr.length - 1].toLowerCase() ;
     if(strSrc.localeCompare('jpg') === 0 || strSrc.localeCompare('jpeg') === 0 || strSrc.localeCompare('gif') === 0 || strSrc.localeCompare('png') === 0){
      obj.setAttribute("src",transImg);
      obj.style.filter=
       "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+path+"', sizingMethod='scale');"; // IE通过滤镜的方式实现图片显示
     }else{
      //try{
      throw new Error('File type Error! please image file upload..'); 
      //}catch(e){
      // alert('name: ' + e.name + 'message: ' + e.message) ;
      //}
     }
    }else{
     // alert(fileQuery.value) ;
     imgSrc = fileQuery.value ;
     imgArr = imgSrc.split('.') ;
     strSrc = imgArr[imgArr.length - 1].toLowerCase() ;
     if(strSrc.localeCompare('jpg') === 0 || strSrc.localeCompare('jpeg') === 0 || strSrc.localeCompare('gif') === 0 || strSrc.localeCompare('png') === 0){
      obj.src = fileQuery.value ;
     }else{
      //try{
      throw new Error('File type Error! please image file upload..') ;
      //}catch(e){
      // alert('name: ' + e.name + 'message: ' + e.message) ;
      //}
     }

    }

   } else{
    var file =fileQuery.files[0];
    var reader = new FileReader();
    reader.onload = function(e){

     imgSrc = fileQuery.value ;
     imgArr = imgSrc.split('.') ;
     strSrc = imgArr[imgArr.length - 1].toLowerCase() ;
     if(strSrc.localeCompare('jpg') === 0 || strSrc.localeCompare('jpeg') === 0 || strSrc.localeCompare('gif') === 0 || strSrc.localeCompare('png') === 0){
      obj.setAttribute("src", e.target.result) ;
     }else{
      //try{
      throw new Error('File type Error! please image file upload..') ;
      //}catch(e){
      // alert('name: ' + e.name + 'message: ' + e.message) ;
      //}
     }

     // alert(e.target.result); 
    }
    reader.readAsDataURL(file);
   }
  }

  function show(){
   //以下即为完整客户端路径
   var file_img=document.getElementById("img"),
    iptfileupload = document.getElementById('iptfileupload') ;
   getPath(file_img,iptfileupload,file_img) ;
  }
 </script>

이 기사가 JavaScript 프로그래밍을 배우는 모든 사람에게 도움이 되기를 바랍니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.