Ni kan kolla på denna länk hur det (inte) funkar nu: http://217.215.27.149:8090/smuts/djsets.php
Jag har försökt få ihop ett nedladdningsscript som ska visa ett värde istället för hela sökvägen. Problemet just nu är att istället för att man får välja om man ska spara filen eller inte försöker webbläsaern ladda in hela filen i sidan, vilket givetvis tar en ohejdans lång tid (filerna är mellan 50 och 100MB stora). Jag lyckades få det att fungera om jag gjorde ett enkelt HTML dokument med en länk men inte nu när jag bäddar in det hela i mina php sidor. Har provat med olika headers utan resultat.
Länkarna skrivs ut följande: djsets.php?dl=44 exempelvis. Jag plockar värdet av dl direkt.
Koden:
if ($dl) {
$connection_djsets = mysql_connect($host,$user,$password) or die ("Kunde inte koppla upp mot MySQL servern\n". mysql_error());
mysql_select_db($db) or die(mysql_error());
$result = mysql_query('SELECT * FROM djsets WHERE id = '.$dl) or die (mysql_error());
while ($row = mysql_fetch_array($result)) {
extract($row);
$filename = "F:/htdocs/smuts/music/$row[4]";
}
mysql_close($connection_djsets);
$shortname = basename($filename);
if(file_exists($filename) && !eregi("p?html?", $filename) && !eregi("inc", $filename) && !eregi("php", $filename) && !eregi("log", $filename) && !eregi("php3?", $filename)){
$size = filesize($filename);
//header("Content-Type: application/save");
//header("Content-Type: application/octet-stream");
header("Content-Type: application/download");
header("Content-Length: $size");
//header("Content-Disposition: attachment; id=$shortname");
header("Content-Disposition: attachment; filename=$shortname");
header("Content-Transfer-Encoding: binary");
$fh = fopen("$filename", "rb");
fpassthru($fh);
exit;
}
}
?>
<td width="422"><table width="422" cellpadding="0" cellspacing="0" border="0">
<tr>
<td bgcolor="#E9E9E9"><table width="422" cellpadding="0" cellspacing="0" border="0" background="img/news_back.gif">
<tr>
<td colspan="5"><img src="img/sets_top.gif"></td>
</tr>
<tr>
<td colspan="5"><img src="img/empty.gif" width="1" height="5"></td>
</tr>
<tr valign="top">
<td width="5"><img src="img/empty.gif" width="5"></td>
<td width="412"><table width="100%" cellpadding="2" cellspacing="0" border="0">
<?php
$connection_djsets = mysql_connect($host,$user,$password) or die ("Kunde inte koppla upp mot MySQL servern\n". mysql_error());
mysql_select_db($db) or die(mysql_error());
if ($pl) {
$result = mysql_query('SELECT * FROM djsets WHERE id = '.$pl) or die (mysql_error());
while ($row = mysql_fetch_array($result)) {
extract($row);
echo "<tr bgcolor=DFDFDF><td>Playlist for $row[2]</td></tr>";
echo "<tr bgcolor=E9E9E9><td>".nl2br($row[5])."<p>« <a href=\"djsets.php\">back</a></td></tr>";
}
} else {
$result = mysql_query('SELECT * FROM djsets ORDER BY dj') or die (mysql_error());
$bgcolor = "#E9E9E9";
while ($row = mysql_fetch_array($result)) {
extract($row);
print "<tr bgcolor=\"$bgcolor\" valign=top><td><b>$row[1] - $row[2]</b></td><td align=right>";
if ($row[5] != '') {
print "<a href=\"djsets.php?pl=$row[0]\"><img src=\"img/pl.gif\" border=\"0\" alt=\" :: View Playlist :: \"></a>";
}
print " <a href=\"djsets.php?dl=$row[0]\"><img src=img/dl.gif border=0 alt=\" :: Download :: \"></a></td></tr>";
print "<tr bgcolor=\"$bgcolor\"><td colspan=2>$row[3] : $row[6]</td></tr>";
print "<tr><td colspan=2><img src=\"img/empty.gif\" width=1 height=0></td></tr>";
$bgcolor = $bgcolor == "#DFDFDF" ? "#E9E9E9" : "#DFDFDF";
}
}
mysql_close($connection_djsets);
?>
</table></td>