Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13

Discussione: Download elementi

  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2009
    Messaggi
    181

    Download elementi

    Salve(per l'ennesima volta),
    ho la necessit di eseguire un download una volta si clicca su un elemento,se una cartella creo uno zip(e ci riesco,anche se un po' male,ma va be'),ma quando devo eseguire il download mi esce uno schifo nell'iframe:
    codice:
    K nonvisPK nonvisnonvis/PK.("nonvisnonvis/Alimenti - Copia.xlsxzeT\m7i$;@&;-Ip׃whs{\n߿ǻGQk֬U@$  D#akhl㨯fg jmE /Fq MŇk:5BfpD6Sxy0-Aϲk> =&QPwM C_\xZt4)}zUCxHJ ەm /dY,.r0MI62smibb/ǡκAh,yє y8 =hiAfD
    Ho cercato di copiarlo tutto ma firefox si inchiodato,occupando 1,8 GB di ram....
    Questo il codice:

    Codice PHP:
    public function forceDownload($archiveName) {
            if(
    ini_get('zlib.output_compression')) {
                
    ini_set('zlib.output_compression''Off');
            }

            
    // Security checks
            
    if( $archiveName == "" ) {
                echo 
    "<html><title>Public Photo Directory - Download </title><body>
    [B]ERROR:[/B] The download file was NOT SPECIFIED.</body></html>"
    ;
                exit;
            }
            elseif ( ! 
    file_exists$archiveName ) ) {
                echo 
    "<html><title>Public Photo Directory - Download </title><body>
    [B]ERROR:[/B] File not found.</body></html>"
    ;
                exit;
            }

            
    header("Pragma: public");
            
    header("Expires: 0");
            
    header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
            
    header("Cache-Control: private",false);
            
    header("Content-Type: application/zip");
            
    header("Content-Disposition: attachment; filename=".basename($archiveName).";" );
            
    header("Content-Transfer-Encoding: binary");
            
    header("Content-Length: ".filesize($archiveName));
            
    readfile("$archiveName");
        } 
    Qualcuno sa aiutarmi?

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    ma in quale iframe? se hai messo come SRC il riferimento allo script del download non corretto... come viene richiamato il file?

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2009
    Messaggi
    181
    Niente come src dell'iframe faccio riferimento allo script del download
    clicco sull'immagine,chiama una funzione javascript che stampa il link con la variabile(download.php?path=id) nell'src dell'iframe...come posso fare per non cambiare pagina?

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    non puoi usare l'iframe cos... devi mettere un link "normale"... se gli header si formano per il download ti uscir la finestra di avviso, altrimenti si apre la pagina html con il tuo errore.

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2009
    Messaggi
    181
    per link normale intendi il link completo del sito (http://farebury.exofire.net/download.php?path=pat)? Puoi farmi un esempio?

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    linka semplicemente lo script php che chiama la funzione forcedownload, tipo:

    Codice PHP:
    [url="download.php"]fai il download[/url
    dove download.php contiene la chiamata alla tua funzione

  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2009
    Messaggi
    181
    Allora questo la parte in php per l'immagine di download:
    Codice PHP:
    "...[img]iconset/download.png[/img]" 
    quindi si dovrebbe presentare come(se vuoi prova a controllare gli apici):
    codice:
    [img]iconset/download.png[/img]
    in download.php
    Codice PHP:
    $filename=$_GET['f']; 
    Il problema che vuoto...

    Se vuoi questo tutto il codice di download.php
    Codice PHP:
    <?php
    include 'dbc.php';
    page_protect();

    if(
    GetSistemaOperativo()=='Mac')
        include 
    'creazip/CreateZipFileMac.zip.php';
    else{
        include 
    'creazip/CreateZipFile.inc.php';
        }
    include 
    'creazip/extzip.php';

    $filename=$_GET['f'];

        
    $prx='errori.txt';
        
    $file=fopen($prx,'a+');
        
    fwrite($file,'nome='.$filename);
        
    fclose($file);
        
    $pos=strripos($filename'/');
    $path=substr($filename,0,$pos+1);
    $path=str_replace('http://farebury.exofire.net/','',$path);
    $name=substr($filename,$pos+1);
    $name=str_replace('/','',$name);
    $kind=str_replace('http://farebury.exofire.net/','',$filename);
    $username=$_SESSION['user_nick'];

    if(
    is_file($kind)==true){
    down($name,$path);
    }

    else if(
    is_dir($kind)==true){
    $username=$_SESSION['user_nick'];
    $deep=$name.'/';
    $createZip = new createDirZip;
    $createZip->addDirectory($deep);
    $createZip->get_files_from_folder($path$deep);

    mkdir('tmp/'.$username,0741,true);
    $fileName 'tmp/'.$username.'/'.$name.'.zip';

    $fd fopen ($fileName'wb');
    $out fwrite ($fd$createZip->getZippedfile());
    fclose ($fd);
     
    $createZip->forceDownload($fileName);
    @
    unlink($fileName);

    }

    /*else 
      echo "<script>alert('Can\"t define path type');</script>";*/ //mi dava un errore strano e allora ho commentato tutto.



    function down($name,$path){

    //echo "<script>alert('nome=".$name."');</script>";
    // Allow direct file download (hotlinking)?
    // Empty - allow hotlinking
    // If set to nonempty value (Example: example.com) will only allow downloads when referrer contains this text
    define('ALLOWED_REFERRER''');

    // Download folder, i.e. folder where you keep all files for download.
    // MUST end with slash (i.e. "/" )
    define('BASE_DIR',$path);

    // log downloads?  true/false
    define('LOG_DOWNLOADS',true);

    // log file name
    define('LOG_FILE','downloads.log');

    // Allowed extensions list in format 'extension' => 'mime type'
    // If myme type is set to empty string then script will try to detect mime type 
    // itself, which would only work if you have Mimetype or Fileinfo extensions
    // installed on server.
    $allowed_ext = array (

      
    // archives
      
    'zip' => 'application/zip',

      
    // documents
      
    'pdf' => 'application/pdf',
      
    'doc' => 'application/msword',
      
    'xls' => 'application/vnd.ms-excel',
      
    'ppt' => 'application/vnd.ms-powerpoint',
      
      
    // executables
      
    'exe' => 'application/octet-stream',

      
    // images
      
    'gif' => 'image/gif',
      
    'png' => 'image/png',
      
    'jpg' => 'image/jpeg',
      
    'jpeg' => 'image/jpeg',

      
    // audio
      
    'mp3' => 'audio/mpeg',
      
    'wav' => 'audio/x-wav',

      
    // video
      
    'mpeg' => 'video/mpeg',
      
    'mpg' => 'video/mpeg',
      
    'mpe' => 'video/mpeg',
      
    'mov' => 'video/quicktime',
      
    'avi' => 'video/x-msvideo'
    );


    // If hotlinking not allowed then make hackers think there are some server problems
    if (ALLOWED_REFERRER !== ''
    && (!isset($_SERVER['HTTP_REFERER']) || strpos(strtoupper($_SERVER['HTTP_REFERER']),strtoupper(ALLOWED_REFERRER)) === false)
    ) {
      die(
    "Internal server error. Please contact system administrator.");
    }

    // Make sure program execution doesn't time out
    // Set maximum script execution time in seconds (0 means no limit)
    set_time_limit(0);

    if (!isset(
    $name) || empty($name)) {
      die(
    "Please specify file name for download.");
    }

    // Nullbyte hack fix
    if (strpos($name"\0") !== FALSE) die('');

    // Get real file name.
    // Remove any path info to avoid hacking by adding relative path, etc.
    $fname basename($name);

    // Check if the file exists
    // Check in subfolders too
    function find_file ($dirname$fname$file_path) {

      
    $dir opendir($dirname);

      while (
    $file readdir($dir)) {
        if (empty(
    $file_path) && $file != '.' && $file != '..') {
          if (
    is_dir($dirname.'/'.$file)) {
            
    find_file($dirname.'/'.$file$fname$file_path);
          }
          else {
            if (
    file_exists($dirname.'/'.$fname)) {
              
    $file_path $dirname.'/'.$fname;
              return;
            }
          }
        }
      }

    // find_file

    // get full file path (including subfolders)
    $file_path '';
    find_file(BASE_DIR$fname$file_path);

    if (!
    is_file($file_path)) {
      die(
    "File does not exist. Make sure you specified correct file name."); 
    }

    // file size in bytes
    $fsize filesize($file_path); 

    // file extension
    $fext strtolower(substr(strrchr($fname,"."),1));

    // check if allowed extension
    if (!array_key_exists($fext$allowed_ext)) {
      die(
    "Not allowed file type."); 
    }

    // get mime type
    if ($allowed_ext[$fext] == '') {
      
    $mtype '';
      
    // mime type is not set, get from server settings
      
    if (function_exists('mime_content_type')) {
        
    $mtype mime_content_type($file_path);
      }
      else if (
    function_exists('finfo_file')) {
        
    $finfo finfo_open(FILEINFO_MIME); // return mime type
        
    $mtype finfo_file($finfo$file_path);
        
    finfo_close($finfo);  
      }
      if (
    $mtype == '') {
        
    $mtype "application/force-download";
      }
    }
    else {
      
    // get mime type defined by admin
      
    $mtype $allowed_ext[$fext];
    }

    // Browser will try to save file with this filename, regardless original filename.
    // You can override it if needed.

    if (!isset($_GET['fc']) || empty($_GET['fc'])) {
      
    $asfname $fname;
    }
    else {
      
    // remove some bad chars
      
    $asfname str_replace(array('"',"'",'\\','/'), ''$_GET['fc']);
      if (
    $asfname === ''$asfname 'NoName';
    }

    // set headers
    header("Pragma: public");
    header("Expires: 0");
    header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
    header("Cache-Control: public");
    header("Content-Description: File Transfer");
    header("Content-Type: $mtype");
    header("Content-Disposition: attachment; filename=\"$asfname\"");
    header("Content-Transfer-Encoding: binary");
    header("Content-Length: " $fsize);

    // download
    // @readfile($file_path);
    $file = @fopen($file_path,"rb");
    if (
    $file) {
      while(!
    feof($file)) {
        print(
    fread($file1024*8));
        
    flush();
        if (
    connection_status()!=0) {
          @
    fclose($file);
          die();
        }
      }
      @
    fclose($file);
    }

    // log downloads
    if (!LOG_DOWNLOADS) die();

    $f = @fopen(LOG_FILE'a+');
    if (
    $f) {
      @
    fputs($fdate("m.d.Y g:ia")."  ".$_SERVER['REMOTE_ADDR']."  ".$fname."\n");
      @
    fclose($f);
    }
    }


    function 
    GetSistemaOperativo()
    {
        
    $os = array(
            
    'Windows NT 5.1'  => 'Windows XP',
            
    'Windows NT 5.0'  => 'Windows 2000',
            
    'Windows NT 4.90' => 'Windows ME',
            
    'Win95'           => 'Windows 95',
            
    'Win98'           => 'Windows 98',
            
    'Windows NT 5.2'  => 'Windows NET',
            
    'WinNT4.0'        => 'Windows NT',
            
    'Mac'             => 'Mac',
            
    'PPC'             => 'Mac',
            
    'Linux'           => 'Linux',
            
    'FreeBSD'         => 'FreeBSD',
            
    'SunOS'           => 'SunOS',
            
    'Irix'            => 'Irix',
            
    'BeOS'            => 'BeOS',
            
    'OS/2'            => 'OS/2',
            
    'AIX'             => 'AIX',
        );

        foreach(
    $os as $chiave => $valore)
        {
            if(
    strpos($_SERVER['HTTP_USER_AGENT'], $chiave))
            {
                return 
    $valore;
            }
        }

        return 
    'Altro';
    }

    ?>

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    un po' lungo... pant... cmq: perch hai un href nel tag img?

  9. #9
    Utente di HTML.it
    Registrato dal
    Nov 2009
    Messaggi
    181
    perch sono un asino e me ne sono accorto dopo,ho corretto,ma adesso apre la pagina che rimane in bianco,senza effettuare alcun download...

    Adesso si presenta cos:

  10. #10
    Utente di HTML.it
    Registrato dal
    Nov 2009
    Messaggi
    181
    Ho risolto(per modo di dire,adesso mi dice che il file non esiste...) .
    Ancora grazie mille!

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 © 2024 vBulletin Solutions, Inc. All rights reserved.