복붙노트

[JQUERY] 파일이 jQuery를 또는 순수 자바 스크립트에 있는지 어떻게 확인합니까?

JQUERY

파일이 jQuery를 또는 순수 자바 스크립트에 있는지 어떻게 확인합니까?

해결법


  1. 1.jQuery로 :

    jQuery로 :

    $.ajax({
        url:'http://www.example.com/somefile.ext',
        type:'HEAD',
        error: function()
        {
            //file not exists
        },
        success: function()
        {
            //file exists
        }
    });
    

    편집하다:

    여기서 (404 개) 상태를 확인하기위한 코드 jQuery를 사용하지 않고있다

    function UrlExists(url)
    {
        var http = new XMLHttpRequest();
        http.open('HEAD', url, false);
        http.send();
        return http.status!=404;
    }
    

    소형 변경하고 대신, 상태 HTTP 상태 코드 200 (성공)을 확인 할 수있다.

    편집 2 : 동기화 XMLHttpRequest를가되지 않습니다 때문에, 당신은 비동기 그것을 할이 같은 유틸리티 메소드를 추가 할 수 있습니다 :

    function executeIfFileExist(src, callback) {
        var xhr = new XMLHttpRequest()
        xhr.onreadystatechange = function() {
            if (this.readyState === this.DONE) {
                callback()
            }
        }
        xhr.open('HEAD', src)
    }
    

  2. 2.비슷한 더 최신의 방법.

    비슷한 더 최신의 방법.

    $.get(url)
        .done(function() { 
            // exists code 
        }).fail(function() { 
            // not exists code
        })
    

  3. 3.이것은 나를 위해 작동합니다 :

    이것은 나를 위해 작동합니다 :

    function ImageExist(url) 
    {
       var img = new Image();
       img.src = url;
       return img.height != 0;
    }
    

  4. 4.내가 다른 이미지를 추가하려면이 스크립트를 사용

    내가 다른 이미지를 추가하려면이 스크립트를 사용

    function imgError()
    {
    alert('The image could not be loaded.');
    }
    

    HTML :

    <img src="image.gif" onerror="imgError()" />
    

    http://wap.w3schools.com/jsref/event_onerror.asp


  5. 5.너무 오래이 일을해야 동일한 도메인에있는 파일을 테스트하고 같이

    너무 오래이 일을해야 동일한 도메인에있는 파일을 테스트하고 같이

    function fileExists(url) {
        if(url){
            var req = new XMLHttpRequest();
            req.open('GET', url, false);
            req.send();
            return req.status==200;
        } else {
            return false;
        }
    }
    

    참고이 예제는 헤더를 받고 외에 (모든 사용자가 파일이 존재 날씨를 확인해야합니다) GET 요청을 사용하면 전체 파일을 가져 주시기 바랍니다. 파일이 충분히 큰 경우이 방법을 완료하는 데 시간이 걸릴 수 있습니다.

    이 작업을 수행 할 수있는 더 좋은 방법이 줄을 변경하는 것 : req.open ( 'GET', URL, 거짓); req.open ( 'HEAD', URL, 거짓)에;


  6. 6.나는 갔다, 그래서이 질문에 대한 답을 실행하려고 크로스 도메인 권한 문제를 얻고 있었다 :

    나는 갔다, 그래서이 질문에 대한 답을 실행하려고 크로스 도메인 권한 문제를 얻고 있었다 :

    function UrlExists(url) {
    $('<img src="'+ url +'">').load(function() {
        return true;
    }).bind('error', function() {
        return false;
    });
    }
    

    그것은 작업 좋은 것 같다,이 사람을 도움이되기를 바랍니다!


  7. 7.다음은 바벨 transpiler 또는 타이프 라이터 2를 사용하는 경우, ES7 방법으로 그것을 할 방법은 다음과 같습니다

    다음은 바벨 transpiler 또는 타이프 라이터 2를 사용하는 경우, ES7 방법으로 그것을 할 방법은 다음과 같습니다

    async function isUrlFound(url) {
      try {
        const response = await fetch(url, {
          method: 'HEAD',
          cache: 'no-cache'
        });
    
        return response.status === 200;
    
      } catch(error) {
        // console.log(error);
        return false;
      }
    }
    

    그런 다음 다른 비동기 범위 내에서, 당신은 쉽게 URL이 있는지 여부를 확인할 수 있습니다 :

    const isValidUrl = await isUrlFound('http://www.example.com/somefile.ext');
    
    console.log(isValidUrl); // true || false
    

  8. 8.나는 파일이 (또한 십자가의 기원 문제를 처리하는) 존재하는지 확인하려면이 스크립트를 사용 :

    나는 파일이 (또한 십자가의 기원 문제를 처리하는) 존재하는지 확인하려면이 스크립트를 사용 :

    $.ajax(url, {
           method: 'GET',
           dataType: 'jsonp'
             })
       .done(function(response) { 
            // exists code 
        }).fail(function(response) { 
            // doesnt exist
        })
    

    파일이 JSON을 포함하지 않는 확인 될 때 ​​참고 다음과 같은 구문 오류가 발생됩니다.


  9. 9.파일이 더 나은 방법이다 존재하는 경우는 서버의 응답을 기다리는하여 사용자 경험을 저하하지 않기 때문에 비동기 호출은 볼 수 있습니다. (예 : http.open ( 'HEAD', URL, false)를 들어, 위의 많은 예에서와 같이) 세 번째 매개 변수를 false로 설정하여 .open로 전화를 걸 경우,이 동기 호출, 당신은 경고를 얻을 브라우저 콘솔한다.

    파일이 더 나은 방법이다 존재하는 경우는 서버의 응답을 기다리는하여 사용자 경험을 저하하지 않기 때문에 비동기 호출은 볼 수 있습니다. (예 : http.open ( 'HEAD', URL, false)를 들어, 위의 많은 예에서와 같이) 세 번째 매개 변수를 false로 설정하여 .open로 전화를 걸 경우,이 동기 호출, 당신은 경고를 얻을 브라우저 콘솔한다.

    더 나은 방법은 다음과 같습니다

    function fetchStatus( address ) {
      var client = new XMLHttpRequest();
      client.onload = function() {
        // in case of network errors this might not give reliable results
        returnStatus( this.status );
      }
      client.open( "HEAD", address, true );
      client.send();
    }
    
    function returnStatus( status ) {
      if ( status === 200 ) {
        console.log( 'file exists!' );
      }
      else {
        console.log( 'file does not exist! status: ' + status );
      }
    }
    

    출처 : https://xhr.spec.whatwg.org/


  10. 10.클라이언트 컴퓨터의 경우 이것은에 의해 달성 될 수있다 :

    클라이언트 컴퓨터의 경우 이것은에 의해 달성 될 수있다 :

    try
    {
      var myObject, f;
      myObject = new ActiveXObject("Scripting.FileSystemObject");
      f =   myObject.GetFile("C:\\img.txt");
      f.Move("E:\\jarvis\\Images\\");
    }
    catch(err)
    {
      alert("file does not exist")
    }
    

    이 존재하지 않는 경우, 특정 위치와 쇼 경고에 파일을 전송하는 내 프로그램입니다


  11. 11.자바 스크립트는 파일이 존재하는지 확인하는 기능 :

    자바 스크립트는 파일이 존재하는지 확인하는 기능 :

    function doesFileExist(urlToFile)
    {
        var xhr = new XMLHttpRequest();
        xhr.open('HEAD', urlToFile, false);
        xhr.send();
    
        if (xhr.status == "404") {
            console.log("File doesn't exist");
            return false;
        } else {
            console.log("File exists");
            return true;
        }
    }
    

  12. 12.우선 함수를 작성

    우선 함수를 작성

    $ .UrlExists = 기능 (URL) { VAR HTTP = 새로운 XMLHttpRequest의 (); http.open ( 'HEAD', URL, 거짓); http.send (); http.status를 반환 = 404! }

    다음과 같은 기능을 사용한 후

    경우 ($. UrlExists ( "urlimg")) { 사진 = "img1.jpg"; }그밖에{ 사진 = "img2.jpg"; } $ ( '') ATTR ( 'SRC'사진).;


  13. 13.이것은 허용 대답에 적응,하지만 난 대답에서 필요한, 그리고 그것을 직감했다대로 난 여기에 내 솔루션을 가져온 거에요 그래서이, 일을 테스트 한 것을 얻을 수 없었다.

    이것은 허용 대답에 적응,하지만 난 대답에서 필요한, 그리고 그것을 직감했다대로 난 여기에 내 솔루션을 가져온 거에요 그래서이, 일을 테스트 한 것을 얻을 수 없었다.

    우리는 존재 로컬 파일을 확인하고 만이 존재하는 경우 파일 (PDF 파일)을 열 수 있도록했습니다. : 그것은 로컬 호스트와 서버에서 작업 만들기 - 당신이 웹 사이트의 URL을 생략하면 브라우저가 자동으로 호스트 이름을 확인합니다

    $.ajax({
    
        url: 'YourFolderOnWebsite/' + SomeDynamicVariable + '.pdf',
        type: 'HEAD',
        error: function () {
            //file not exists
            alert('PDF does not exist');
    
        },
        success: function () {
            //file exists
            window.open('YourFolderOnWebsite/' + SomeDynamicVariable + '.pdf', "_blank", "fullscreen=yes");
    
        }
    });
    

  14. 14.당신이해야 할 것입니다 것은 검사를 수행 한 다음에 그 결과를 다시 전송하는 서버에 요청을 보낼 수 있습니다.

    당신이해야 할 것입니다 것은 검사를 수행 한 다음에 그 결과를 다시 전송하는 서버에 요청을 보낼 수 있습니다.

    서버의 어떤 종류의 당신이와 통신하려고? 당신은 요청에 응답 작은 서비스를 작성할 필요가 있습니다.


  15. 15.이는 영업 이익의 문제를 해결하지 않지만, 데이터베이스에서 결과를 반환하는 누군가를 위해 여기 내가 사용하는 간단한 방법입니다.

    이는 영업 이익의 문제를 해결하지 않지만, 데이터베이스에서 결과를 반환하는 누군가를 위해 여기 내가 사용하는 간단한 방법입니다.

    사용자가 아바타를 업로드하지 않은 경우 나는 IMG 디렉토리에서 기본 아바타 이미지를 삽입 줄 수 있도록 아바타 필드는 NULL이 될 것입니다.

    function getAvatar(avatar) {
        if(avatar == null) {
            return '/img/avatar.jpg';
        } else {
            return '/avi/' + avatar;
        }
    }
    

    그때

    <img src="' + getAvatar(data.user.avatar) + '" alt="">
    

  16. 16.그것은 나를 위해 작동, 사용은 iframe은 브라우저가 GET 오류 메시지가 표시 무시

    그것은 나를 위해 작동, 사용은 iframe은 브라우저가 GET 오류 메시지가 표시 무시

     var imgFrame = $('<iframe><img src="' + path + '" /></iframe>');
     if ($(imgFrame).find('img').attr('width') > 0) {
         // do something
     } else {
         // do something
     }
    

  17. 17.나는 부울을 반환하는 함수, 내가 폐쇄 및 비동기 성 관련 문제가 발생 싶었다. 나는 이런 식으로 해결 :

    나는 부울을 반환하는 함수, 내가 폐쇄 및 비동기 성 관련 문제가 발생 싶었다. 나는 이런 식으로 해결 :

    checkFileExistence= function (file){
        result=false;
        jQuery.ajaxSetup({async:false});
        $.get(file)
            .done(function() {
               result=true;
            })
            .fail(function() {
               result=false;
            })
        jQuery.ajaxSetup({async:true});
        return(result);
    },
    
  18. from https://stackoverflow.com/questions/3646914/how-do-i-check-if-file-exists-in-jquery-or-pure-javascript by cc-by-sa and MIT license