Datei wird nur bis Leerzeichen aus der Datenbank runtergeladen
Hallo leute, habe ein MP3 Scrip wo ich per FTP die lieder hochladen muss und im admin menü nur den link einsetzen muss, dann wird es auf der Seite angezeigt aber wenn ich das Lied herunterladen möche, ladet er nicht das lied runter...
Beispiel:
Songname: 23-45 - V mire zhenschin.mp3
wenn ich auf den link klicke ladet er nur 23-45 runter... also ich müsste es so machen
: 23-45_-_V_mire_zhenschin.mp3 damit das lied komplett runtergeladen wird.
Muss man da erwas in der datenbank ändern oder in der upload datei:
Aus der datenbank:
im path wird der link gespeichern:
PHP-Code:
-- Tabellenstruktur für Tabelle `music`
--
CREATE TABLE `music` (
`id` int(11) NOT NULL auto_increment,
`title` varchar(255) NOT NULL,
`interpret` varchar(255) NOT NULL,
`dlcounter` int(11) NOT NULL,
`path` text NOT NULL,
`tstamp` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=535 DEFAULT CHARSET=utf8 AUTO_INCREMENT=535 ;
--
-- Daten für Tabelle `music`
--
INSERT INTO `music` (`id`, `title`, `interpret`, `dlcounter`, `path`, `tstamp`) VALUES (534, '', '23-45 - V mire zhenschin', 1, 'download/23-45 - V mire zhenschin.mp3', '1265463269');
Upload bereich aus dem Script:
PHP-Code:
case 'upload':
if($_GET['page'] == 1)
{
$tp = basename($_FILES['song']['name']);
$ftp_file_query = ftp_put($ftp_connect, $tp, $_FILES['song']['tmp_name'], FTP_BINARY);
if($ftp_file_query)
{
echo "Die Datei wurde hochgeladen.";
$sql = "INSERT INTO
`music`
(`interpret`, `title`, `dlcounter`, `tstamp`, `path`)
VALUES
('".$_POST['interpret']."', '".$_POST['title']."', '0', '".time()."', '/download/".basename($_FILES['song']['name'])."')";
if(mysql_query($sql, $connect))
{
echo "Datenbankeinträge wurden erfolgreich erstellt.<a href='songs_admin.php?site=upload'>Song hochladen</a>";
} else {
echo "Datenbankeinträge konnten nicht erstellt werden.";
}
} else {
echo "Datei konnte nicht hochgeladen werden.";
}
} else {
echo "<form action='songs_admin.php?site=upload&page=1' method='post' enctype='multipart/form-data'><table><tr><td>
Interpret
</td><td>
<input type='text' name='interpret'>
</td></tr><tr><td>
Titel
</td> <td>
<input type='text' name='title'>
</td></tr><tr><td>
Datei
</td><td>
<input type='file' name='song'>
</td> </tr><tr><td>
<input type='reset' name='reset' value='Zurücksetzen'>
</td><td>
<input type='submit' name='submit' value='Hochladen'>
</td></tr></table>
AW: Datei wird nur bis Leerzeichen aus der Datenbank runtergeladen
Auch wenn wir hier nicht wissen, um welche Datenbank es überhaupt geht, eins steht fest: Die meisten mögen keine Leerzeichen, wenn es um relative Dateipfade geht. Entweder benennst Du alle Lieder mit Unterlängen um (also 23-45_-_V_mire_zhenschin.mp3), oder Du versuchst mal, %20 als Leerzeichenvariable mitzugeben (also 23-45%20-%20V%20mire%20zhenschin.mp3).
AW: Datei wird nur bis Leerzeichen aus der Datenbank runtergeladen
Das problem ist ja das es nicht nur 2, 3 lieder sind, sondern 200-300 lieder...und beim jeden die %20 zu setzen, krieg ich doch nen affen bei...
kann man da nicht bei :" '/download/".basename($_FILES['song'] "
nicht irgentwie zeichen dazu setzen oder so?das es sofort beim hochladen es umändert, oder in der datenbank den path bereich so umändern das es den link unverändert raus gibt und nicht nur bis zum leerzeichen...
AW: Datei wird nur bis Leerzeichen aus der Datenbank runtergeladen
Nope, das hätte man beim Hochladen der Lieder im Auge haben müssen. Alles was Du tun kannst, ist in dem Skript vor dem Einsetzen der Liednamen ein Search&Replace über die titel laufen zu lassen und %20 einzusetzen - falls das überhaupt funktioniert.