Visualizzazione dei risultati da 1 a 3 su 3

Discussione: Estrarre SWF

  1. #1

    Estrarre SWF

    Ciao a tutti

    sono alle prese con un filmato flash...

    ho realizzato il mio bel filmatino flash l'ho uploadato su mysql con uno scriptino in php che di solito utilizzo per img e che ho un pò riadattato per utilizzarlo con flash.
    l'inserimento nel db mysql è ok.
    non riesco ad estrarre il file .swf e visualizzarlo!

    qualche consiglio?

    grazie

  2. #2

    Re: Re: Estrarre SWF

    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

  3. #3
    al posto di questo:

    $data = $result["DatiBinari"];
    $type = $result["Type"];
    Header("Content-type: $type");
    echo $data;
    break;



    prova cosi'


    $data = $result["DatiBinari"];
    $fp = fopen("test.swf", "wb");
    fwrite($fp, $data);
    fclose($fp);
    break;

    e prova a vedere se il file swf funziona a prescindere che lo includi con object o meno, insomma vedi se salvi bene l' swf perche' secondo me non va bene l' insert, ovvero questo:
    $data = addslashes(fread(fopen($_FILES["file_binario"]["tmp_name"], "rb"), $_FILES["file_binario"]["size"]));


    che dovrebbe essere:
    $fp = fopen($_FILES["file_binario"]["tmp_name"], "rb");
    $data = fread($fp, filesize($_FILES["file_binario"]["tmp_name"]));
    fclose($fp);

    senza addslashes per intenderci ... o meglio ancora cosi'

    $data = file_get_contents($_FILES["file_binario"]["tmp_name"]);

    e poi inserisci con

    mysql_escape_string
    o
    mysql_real_escape_string

    non usare addslashes insomma ...
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.