webForumDet fria alternativet

Filhämtning

PHPur PHP

5 svar · 866 visningar · startad av Uwe

Medlem sedan nov. 2003181 inlägg
Frågan#1

Har problem med ett script där man ska kunna öppna eller spara ner filen som är av typen mp3 eller ra.

Jag har gjort på följande sätt:

$query = "SELECT * FROM filer WHERE ID={$_GET[id]}";
	$result = mysql_query($query);
	while($list= mysql_fetch_array($result)){
		header("Content-Type: ".$list['Type']);
		readfile("mapp/".$list['Filnamn']);
	}

Problemet är att filnamnet blir inte det som finns i databasen (ex song.mp3), utan det blir samma som filen heter (fil.php). Jag har även provat en alternativ lösning där man måste ladda hem filen.

$query = "SELECT * FROM filer WHERE ID={$_GET['id']}";
	$result = mysql_query($query);
	while($list = mysql_fetch_array($result)){
		header("Content-Type: application/force-download");
		header("Content-Type: ".$list['Type']);
		header("Content-Type: application/download");
		header("Content-Disposition: attachment; filename=".$list['Filnamn']););
		readfile("mapp/".$list['Filnamn']);
	}

Denna funkar bra och filnamnen blir de rätta, men då går det ju inte att välja att öppna filen direkt från sin plats.

Någon som vet hur detta går att lösa?

/Uwe

Medlem sedan mars 200171 inlägg
#2

öppna ljudfil direkt

Problemet som Uwe har beskrivit är något som även jag skulle vilja få beskrivet. Om man har en ljudfil (exempelvis mp3) så vill jag att den ska gå att öppna istället för att bara spara när "popup-rutan" kommer fram efter att man klickat på länken...

Självklart måste det finnas någon vänlig själ som löst detta på WF och kan förklara en lösning..

mvh *erik

Medlem sedan mars 20007 896 inlägg
#3

Vill du streama MP3-filen rakt av så behöver du inte ens använda PHP. Spara hela sökvägen till din MP3-fil i en vanlig textfil, och döp till t.ex. 'musik.m3u':

[url]http://DINDOMÄN.SE/MUSIK.mp3[/url]

Sen använder du följande kod för att streama upp ljudet.

<embed src="http://DINDOMÄN.SE/MUSIK.m3u" hidden="true" autorstart="true" width="128" height="128">

<object id="MediaPlayer"
classid="CLSID:22d6f312-b0f6-11d0-94ab-0080c74c7e95"
codebase="http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=6,4,5,715"
standby="Loading Microsoft Windows Media Player components..."
type="application/x-oleobject" width="239" height="179">

<param name="FileName" value="http://DINDOMÄN.SE/MUSIK.m3u">
<param name="AnimationatStart" value="false">
<param name="TransparentatStart" value="true">
<param name="AutoStart" value="true">
<param name="ShowControls" value="0">

<embed type="application/x-mplayer2"
pluginspage="http://www.microsoft.com/isapi/redir.dll?prd=windows&sbp=mediaplayer&ar=Media&sba=Plugin&"
SRC="http://DINDOMÄN.SE/MUSIK.m3u"
Name=MediaPlayer
ShowControls=0
Width=2
Height=2
</embed>
</object>
Medlem sedan mars 20007 896 inlägg
#4

Jag kom att tänka på att det kanske räcker med att sätta en header och sedan skicka iväg filen?

<?php
header( "Content-Type: audio/mpeg" );
header( "Content-Disposition: attachment; filename=MINFIL"
readfile( "MINFIL.mp3" );
?>

Hittade även: http://www.zend.com/codex.php?id=160&single=1

Medlem sedan jan. 2000372 inlägg
#5

Det är faktiskt ännu bättre att bara skriva ut en M3U, då funkar det både med lokala och strömmade filer.

Medlem sedan nov. 2003181 inlägg
#6

Jag har själv hittat en lösning. Tyvärr funkar det bara med mp3-filer och inte med typen .ra och .rm. Men med denna kommer man ju halvägs.

$query = "SELECT * FROM filer WHERE ID={$_GET['id']}";
    $result = mysql_query($query);
    while($list = mysql_fetch_array($result)){
header("Cache-Control: no-store, no-cache, must-revalidate");  
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");                                   
header("Cache-control: private");                          
header("Content-type: ".$list['Type']);                     
header("Content-Disposition: attachment; filename=".$list['Filnamn']);
$fd = fopen ("mapp/".$list['Filnamn']), "rb");
fpassthru($fd);
}

Är det någon som vet hur man kan göra med .ra- och .rm-filer så är det välkommet.

/Uwe

131 ms totalt · 3 externa anrop · v20260731065814-full.25f56b17
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)