• User

    Trovare indirizzo vero di un file con php

    Ciao ragazzi,
    mi sono fatto questo script per evitare di fare trambusto quando devo installare pacchetti zip sul mio hosting.
    Il mio script copia direttamente il pacchetto zip dal server sorgente a quello di destinazione e poi lo scompatta..

    Il discorso è semplice:
    questa pagina in php mi serve quando ad esempio devo installare un nuovo joomla su un hosting evitando di scaricare lo zip, scompattarlo e uploadare i singoli files via ftp.
    Con il mio script il pacchetto zip viene scaricato sull'hosting direttamente dal server di origine (del progetto joomla in questo caso) e poi estratto.
    Il mio problema è che se nel form della mia paginetta ci scrivo:

    www . indirizzo . com / posto dove sta il file / joomla.zip

    funziona tutto,

    ma con quelle porcherie di

    www . indirizzo . com / index.php ? booh & ziop.zip

    non funziona...

    Quindi mi chiedevo:

    c'è un sistema in php per capire quale sia l'effettivo vero reale indirizzo di un file?

    e cioè che io gli dò

    www . indirizzo . com / index.php ? booh & ziop.zip

    e lui se lo traduce in

    www . indirizzo . com / posto dove sta il file / joomla.zip

    ?

    tipo wget con le virgolette (per chi mi intende!)
    Ciao

    <section id='fileDownloader'><article id='urlForm'>
    <form id='url' name='url' method='post' action=''>
    <label for='urlInput'>The file to be downloaded (URL with http :// ) zip only: </label>
    <input type='text' name='urlInput' id='urlInput' placeholder='URL' size='60' autofocus value="<?=($_POST['submit'])?$_POST['urlInput']:""?>" /><br />
    <input type='submit' value='Download & extract' name='submit' /></form></article>
    <?php if ($_POST['submit']): ?>
    <article id='downloadStatus'>
    <?php
    if (empty($_POST['urlInput'])): die("Please enter a valid download URL"); endif;
    $path = explode("/", $_POST['urlInput']);
    $fileName = $path;
    ?>
    <?php if (file_exists($fileName)): ?>
    This file already downloaded.
    <?php elseif (!copy($_POST['urlInput'], $fileName)): ?>
    Download failed. Make sure that the URL is correct.
    <?php else: ?>
    Download completed. File:
    <?php
    require_once('pclzip.lib.php');
    echo $fileName;
    $archive = new PclZip($fileName);
    if ($archive->extract() == 0)
    die("<font color='red'>Error : Unable to unzip archive</font>");
    $list = $archive->listContent();
    echo "<br /> <br /><b>Extracted files</b><br />";
    for ($i=0; $i<sizeof($list); $i++) {
    if(!$list*['folder'])
    $bytes = " - ".$list*." bytes";
    else
    $bytes = "";
    echo "".$list*['fileName']."$bytes<br />";
    }
    echo "<br /><b>Tutto fatto</b><br />";
    unlink('pclzip.lib.php');
    unlink('upextract.php');
    unlink($fileName);
    endif; ?>
    </article>
    <?php endif; ?>
    </section>


  • ModSenior

    Ciao gnappoman,
    nella maggior parte dei casi non è possibile, in quanto viene mandato proprio dalla pagina php in contenuto del file, può esserci anche qualche sito che invece fa un redirect ed in quel caso la situazione potrebbe essere diversa.