Newsgroup: it.comp.www.php
Titolo: Download campi blob (Again).

Ciao a tutti!
Vi espongo subito il problema, sperando qlc1 mi ri-aiuti..!
Ho memorizzato un file mp3 in un campo blob mysql.
In uno script php carico il contenuto del campo blob in una pagina, cosi da
poter effettuare il download del file mp3.
Il codice dello script php è (modificato , su consiglio di Francesco Mazzi):
<?php
 header("Content-Disposition: attachment; filename="Filemp3");
header("content-type: application/download\n");
header("Cache-control: private");
 .. echo (contenuto campo blob)
 ?>
Il problema è che se clicco sul link del file mp3(e quindi eseguo questo
script..) non mi si apre subito la finestra per il download, ma prima mi
carica tutto il file, come fosse una
pagina html..
Qualcuno sa come mai succede questo?!
Ce volete verificare il sito è 
www.impulsiva.it
, download mp3.
grazie a tutti...!

  header("Content-Disposition: attachment; filename="Filemp3");
									^^^^ 
Error reporting?
-- 
I am what I am, I do what I can
L'uomo, conscio di sbagliare, persevera.

"Setec Astronomy" <setec@_NO_NOSPAM_freemail.it> ha scritto nel messaggio
news:2ZGwc.41283$Wc.13...@twister2.libero.it...

Nessun errore, solo non mi scarica direttamente il file aprendo la finestra
per il download.. spero di essermi spiegato..

 finestra per il download.. spero di essermi spiegato..
Il codice che hai postato e' sintatticamente scorretto, posta il codice
esattamente come lo usi nella tua pagina altrimenti e' pressoche
impossibile poter trovare l'errore.


"Setec Astronomy" <setec@_NO_NOSPAM_freemail.it> ha scritto nel messaggio
news:j_Hwc.41388$Wc.13...@twister2.libero.it...

Ok scusa.. ecco il codice completo.. l'avevo fatto x semplificare.. Ciao
grazie.
<?php
  header("Content-Disposition: attachment; filename=".$File);
  header("content-type: application/download\n");
  header("Cache-control: private");
  if(!mysql_connect($DB_Host,$DB_User,$DB_Password))
   return;
  if(!mysql_select_db($DB_Name))
   return;
  $sql="SELECT Song, Temp_N_Clicks, N_Clicks  FROM Songs WHERE
(SongID='".$SongKey."')";
  $result=mysql_query($sql);
  if(!$result)
   return;
  $row = mysql_fetch_row($result);
  echo $row[0];
  return;
?>

   header("Content-Disposition: attachment; filename=".$File);
                                                         ^^^
Notice:  Undefined variable:  File in ...
Tralasciando gran parte del resto del codice che e' tra i peggio
scritti abbia mai visto, la riga echo $row[0]; e' deficiente del
controllo/conversione per l'escaping.


"Setec Astronomy" <setec@_NO_NOSPAM_freemail.it> ha scritto nel messaggio
news:sJ%wc.96903$Qc.37...@twister1.libero.it...

Si si ok.
Questo mi aiuta in qlc modo?!
Cioč come risolvo il mio problema?!
Grazie.

 Cioh come risolvo il mio problema?!
Leggendo questa FAQ su come si estraggono (ed inseriscono)
correttamente contenuti binari in un DB.
http://php.dopoil.com/faq.php?ImageIntoDB


"Setec Astronomy" <setec@_NO_NOSPAM_freemail.it> ha scritto nel messaggio
news:Fg1xc.43023$Wc.14...@twister2.libero.it...

Si l'ho gia letta tempo fa.. forse devo mettere print al posto di echo,
adesso provo.
Perche il codice è scritto male?!
Dove sbaglio scusa?!
Ciao

 Dove sbaglio scusa?!
Tralasciando lo stile ed il fatto che continui a non postare TUTTO il
codice che utilizzi, non effettui il controllo sull'input dell'utente,
non effettui il controllo sui valori di ritorno di alcune funzioni, non
liberi le risorse di MySQL una volta "allocate", non controlli
l'esistenza dell'indice dell'array prima di utilizzarlo, non fai
l'unescaping del contenuto del DB prima di utilizzarlo.
Penso sia tutto, ma potrei aver dimenticato qualche cosa.


 Penso sia tutto, ma potrei aver dimenticato qualche cosa.+
Tutti quei controlli vengono fatti in una classe a monte, questa è solo una
funzione.
Ad ogni modo, il resto del codice nn è importante ai fini del problema.. ti
è mai capitato una cosa del genere?!
Nn capisco perche si comporti cosi..