사용자가 링크를 클릭 할 때 다운로드를 요청하려면 어떻게해야합니까?
예를 들어 다음 대신 :
<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 나 그 대신해야할까요?
답변
다음을 사용하여보다 우아하게 저하되는 솔루션으로 이것을 제안 할 수 있습니다 preventDefault
.
$('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>
자바 스크립트가 없더라도 최소한 이렇게하면 사용자가 피드백을받을 수 있습니다.
답변
검색 엔진이 특정 파일의 색인을 생성하지 않도록하려면 robots.txt 를 사용 하여 웹 스파이더에게 웹 사이트의 특정 부분에 액세스하지 않도록 지시 할 수 있습니다.
자바 스크립트에만 의존하는 경우 자바 스크립트없이 탐색하는 일부 사용자는 링크를 클릭 할 수 없습니다.
답변
다음은 검색 엔진에서 파일을 숨기는 다양한 방법을 보여주는 멋진 기사입니다.
자바 스크립트는 페이지 색인을 생성하지 않는 좋은 방법이 아닙니다. 사용자가 파일에 직접 링크하여 크롤러에게 공개하는 것을 방지하지 않으며 Rob이 언급했듯이 모든 사용자에게 작동하지 않습니다.
쉬운 해결 방법은 rel="nofollow"
속성 을 추가하는 것입니다.하지만 robots.txt 없이는 완전하지 않습니다.
<a href="uploads/file.doc" rel="nofollow">Download Here</a>
답변
예, window.location.href를 다운로드하려는 파일의 URL로 변경해야합니다.
window.location.href = 'http://www.com/path/to/file';
답변
var link=document.createElement('a');
document.body.appendChild(link);
link.href=url;
link.click();
답변
-
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';