sourcetip

jQuery를 사용하여 파일 다운로드

fileupload 2023. 9. 10. 12:29
반응형

jQuery를 사용하여 파일 다운로드

사용자가 링크를 클릭할 때 다운로드를 요청하려면 어떻게 해야 합니까?

예를 들어, 다음 대신:

<a href="uploads/file.doc">Download Here</a>

다음을 사용할 수 있습니다.

<a href="#">Download Here</a>

 $('a').click... //Some jquery to download the file

이러한 방법으로 Google은 내 HREF 및 개인 파일을 색인화하지 않습니다.

jQuery로 할 수 있나요? 만약 그렇다면, 어떻게 할 수 있나요?아니면 PHP 같은 것으로 해야 할까요?

다음을 사용하여 보다 품위를 떨어뜨리는 해결책으로 이를 제안할 수 있습니다.

$('a').click(function(e) {
    e.preventDefault();  //stop the browser from following
    window.location.href = 'uploads/file.doc';
});

<a href="no-script.html">Download now!</a>

자바스크립트가 없더라도 적어도 사용자는 이런 식으로 피드백을 받을 것입니다.

검색 엔진이 특정 파일을 인덱싱하지 않으려면 로봇을 사용할 수 있습니다.txt는 웹스파이더들에게 당신의 웹사이트의 특정한 부분에 접근하지 말라고 말합니다.

javascript에만 의존한다면, javascript 없이 탐색하는 일부 사용자는 링크를 클릭할 수 없습니다.

다음은 검색 엔진에서 파일을 숨기는 여러 가지 방법을 보여주는 멋진 기사입니다.

http://antezeta.com/news/avoid-search-engine-indexing

자바스크립트는 페이지를 색인화하지 않는 좋은 방법이 아닙니다. 사용자가 파일에 직접 링크하는 것을 막지도 못하고(따라서 크롤러에 노출되는 것), 롭이 언급한 것처럼 모든 사용자에게 효과가 있는 것은 아닙니다.
쉬운 수정은 다음을 추가하는 것입니다.rel="nofollow"속성은 로봇 없이는 완전하지 않습니다.txt.

<a href="uploads/file.doc" rel="nofollow">Download Here</a>
 var link=document.createElement('a');
 document.body.appendChild(link);
 link.href=url;
 link.click();

네, 창 위치를 바꾸셔야 합니다.href는 다운로드할 파일의 url을 말합니다.

window.location.href = 'http://www.com/path/to/file';
  • jQuery 함수 사용하기

        var valFileDownloadPath = 'http//:'+'your url';
    
       window.open(valFileDownloadPath , '_blank');
    

다음과 같이 진술함window.location.href = 'uploads/file.doc';파일을 저장하는 위치를 표시합니다.물론 .htacess를 사용하여 저장된 파일에 대해 필요한 동작을 강제로 수행할 수도 있지만, 이 작업이 항상 소수는 아닐 수도 있습니다.

서버측 php-file을 작성하고 이 내용을 여기에 배치하는 것이 좋습니다.

header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.$_REQUEST['f']);
readfile('../some_folder/some_subfolder/'.$_REQUEST['f']); 
exit;

이 코드는 파일을 저장하는 위치를 표시하지 않고 다운로드로 반환합니다.

이 php-파일을 여는 방법은window.location.href = 'scripts/this_php_file.php?f=downloaded_file';

클릭 이벤트 전에 진행되는 마우스 다운 이벤트를 사용해보시기 바랍니다.그런 방식으로 브라우저는 클릭 이벤트를 자연스럽게 처리하여 코드 이상을 방지합니다.

(function ($) {


    // with this solution, the browser handles the download link naturally (tested in chrome and firefox)
    $(document).ready(function () {

        var url = '/private/downloads/myfile123.pdf';
        $("a").on('mousedown', function () {
            $(this).attr("href", url);
        });

    });
})(jQuery);

html5를 사용하면 이 작업을 매우 쉽게 수행할 수 있습니다.

var link = document.createElement('a');
link.href = "/WWW/test.pdf";
link.download = "file_" + new Date() + ".pdf";
link.click();
link.remove();

예를 들어 이미지를 강제로 다운로드하는 방법을 찾고 있는 누군가가 이 질문을 발견한 경우.이를 위해 <a> 태그에 다운로드 속성을 사용할 수 있습니다.

<a href="/images/myw3schoolsimage.jpg" download>

언급URL : https://stackoverflow.com/questions/1296085/download-file-using-jquery

반응형