Vi posto un pò di codice...così mi spiego meglio!
Allora, questo che segue è per inserire file binari in una tabella di mysql e funziona perfettamente. Il filmatino flash risiede nel DB.
Codice PHP:
if(!isset($_POST)) $_POST = $HTTP_POST_VARS;
$self = isset($_SERVER) ? $_SERVER["PHP_SELF"] : $HTTP_SERVER_VARS["PHP_SELF"];
if($_POST["invia"]) {
// CONNESSIONE AL MYSQL
include("config.php");
include("conn.php");
// MEMORIZZIAMO NELLA VARIABILE $data IL CONTENUTO DEL FILE
$data = addslashes(fread(fopen($_FILES["file_binario"]["tmp_name"], "rb"), $_FILES["file_binario"]["size"]));
// ESEGUIAMO LA QUERY DI INSERIMENTO
$result = @mysql_query("INSERT INTO file_binari (Descrizione, DatiBinari, Nome, Size, Type)
VALUES ('" . $_POST["Descrizione"] . "','$data','" . $_FILES["file_binario"]["name"] . "',
'" . $_FILES["file_binario"]["size"] . "','" . $_FILES["file_binario"]["type"] . "')")
or die("Query di inserimento fallita !");
// ESITO POSITIVO
echo "Il file " . basename($_FILES["file_binario"]["name"]) . " è stato correttamente inserito nel Database.";
// CHIUDIAMO LA CONNESSIONE A MYSQL
@mysql_close();
} else {
echo "
<html>
<head>
<title>Form per l'inserimento</title>
</head>
<body>
<div align=\"center\">
<table>
<form action=\"$self\" method=\"POST\" enctype=\"multipart/form-data\">
<tr>
<td valign=\"top\">Descrizione </td>
<td><textarea name=\"Descrizione\" cols=\"40\" rows=\"5\"></textarea></td>
</tr>
<tr>
<td>File</td>
<td><input type=\"file\" name=\"file_binario\" size=\"40\"></td>
</tr>
<tr>
<td colspan=\"2\" valign=\"bottom\" align=\"center\" height=\"30\">
<input type=\"submit\" value=\"Invia il file\" name=\"invia\"></td>
</tr>
</form>
</table>
</div>
</body>
</html>
";
}
Questo che segue invece è il codice actions.php per poter vedere i file binari.
Codice PHP:
if(!isset($_GET)) $_GET = $HTTP_GET_VARS;
if($_GET["action"] && $_GET["Id"] && is_numeric($_GET["Id"])) {
//file di configurazione
include("config.php");
include("conn.php");
switch($_GET["action"]) {
// VISUALIZZAZIONE
case "view" :
$query = "SELECT DatiBinari, Type FROM file_binari WHERE Id = '" . $_GET["Id"] . "'";
$select = @mysql_query($query) or die("Query fallita !");
$result = @mysql_fetch_array($select);
$data = $result["DatiBinari"];
$type = $result["Type"];
Header("Content-type: $type");
echo $data;
break;
default :
// DEFAULT CASE, NESSUNA AZIONE
break;
} // endswitch
// CHIUDIAMO LA CONNESSIONE
@mysql_close();
}
Questo invece è il richiamo cheinserisco in una pagina *.php per visualizzare, o estrarre se vogliamo dire, il file binario
Codice PHP:
<img src=\"actions.php?action=view&Id=" . $numrows[id_i] . "\" alt=\"\" border=\"0\">
Ora il tutto funge se utilizzo immagini, ma se provo a visualizzare un swf no!
Ovviamente per visualizzare l'swf ho utilizzato il tag <object>!!!
E cmq non funziona doopo 1.001 tentativi e prove
Mi date una mano?
Oppure ditemi se il codice che ho postato non va bene per l'swf, o come fatte voi per visualizzare un swf...
Grazie