나는 각 노래에 옆에 노래와 다운로드 버튼이있는 페이지가 : 그럼페이지에 여러 곡 중 하나를 다운로드하는 PHP 스크립트를 작성하려면 어떻게해야합니까?
<table>
<tr>
<td>Off the Grid</td>
<td><a href="http://example.com/php/download.php?Off_the_Grid.mp3">Download</a></td>
</tr>
<tr>
<td>Far-Sighted</td>
<td><a href="http://example.com/php/download.php?Far_Sighted.mp3">Download</a></td>
</tr>
</table>
을 나는이 다운로드 강제로 다음 스크립트 :
<?php
$audioFile = "Off_the_Grid.mp3";
$fileName = $_GET['$audioFile'];
// Fetch the file info.
$filePath = '../audio/' . $audioFile;
if(file_exists($filePath)) {
$fileName = basename($filePath);
$fileSize = filesize($filePath);
// Output headers.
header("Cache-Control: private");
header("Content-Type: audio/mpeg, audio/x-mpeg, audio/x-mpeg-3, audio/mpeg3");
header("Content-Length: ".$fileSize);
header("Content-Disposition: attachment; filename=".$fileName);
// Output file.
readfile ($filePath);
exit();
}
else {
die('The provided file path is not valid.');
}
?>
내 목표는이를 설정하는 것입니다 스크립트를 다운로드하여 노래의 다운로드 링크 (예 : "Far-Sighted"- "Far-Sighted")와 "Far-Sighted"만 다운로드하도록 할 수 있습니다. 대신 "Off the Grid"다운로드 링크를 클릭하면 "Off the Grid"기능이 실행됩니다. 내가 게시하는 모든 노래 등.
위 코드는 "그리드에서 벗어남"을 강제로 다운로드하는 한 작동합니다. 그러나, 나는 그것이 클릭되는 어떤 노래라도 다운로드하도록 강요하려고 노력하고있다. 바로 지금, "Far-Sighted"옆에있는 "Download"를 클릭하면 게시 된 코드에 따라 "Off the Grid"가 다운로드되고 "Far-Sighted"는 다운로드되지 않습니다. 분명히, "멀리 - 시력"다운로드해야합니다; 그러나 나는 막혔습니다. -/
이것을 올바르게 수행 할 수있는 방법이 있습니까? 나는 이것을 간결하게 사용할 수있는 방법으로 생각하려고 노력해 왔습니다. 내 변수 "$ audiofile"이 클릭 한 노래 다운로드 링크에 따라 값을 변경하도록 만드는 방법이 있습니까? 각 노래에 대한 php 파일을 작성하고 거기에있는 노래에 고유 한 스크립트 또는 각 노래에 맞는 스크립트의 여러 인스턴스가있는 하나의 PHP 파일을 게시하기로했습니다. 그러나 그것은 어리석은 것처럼 보였다.
이렇게하는 좋은 방법이 있습니까? 감사!
답변 해 주셔서 감사합니다. 강제 다운로드는 ".../download.php? Far_Sighted.mp3"및 ".../download.php? farSighted = Far_Sighted.mp3"에 대해 모두 작동합니다. 그것은 문제가되는 다운로드를 강요하지 않지만 클릭 한 노래에 대해 실행되는 스크립트의 인스턴스 1 개를 사용하는 방법입니다. 그것이 당신이 대답하는 질문입니까, 아니면 제가 당신의 대답을 오해하고 있습니까? –
필자는 GET을 제대로 사용하지 않고 파일 경로가 항상'$ filePath = '../audio/'라고 생각했다. "Off_the_Grid.mp3"를 클릭 한 노래의 변수가 아닙니다. 그래서, 명확하게하기 : - 당신이 GET 당신이 원하는 정보를 얻고 확인 - 당신이 완벽하게 – Sikian
작품을 원하는 위치에 FILE_PATH가 가리키고 있는지 확인하십시오! 감사. 우아하게 간단 :) –