Innanzitutto grazie delle risposte
ri scrivo il codice senza tag CODE così ci intendiamo meglio
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 /?boohwihdwiedh?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 /?boohwihdwiedh?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']:""?>" />
<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[sizeof($path) - 1];
?>
<?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 "
Extracted files
";
for ($i=0; $i<sizeof($list); $i++) {
if(!$list[$i]['folder'])
$bytes = " - ".$list[$i]['size']." bytes";
else
$bytes = "";
echo "".$list[$i]['fileName']."$bytes
";
}
echo "
Tutto fatto
";
unlink('pclzip.lib.php');
unlink('upextract.php');
unlink($fileName);
endif; ?>
</article>
<?php endif; ?>
</section>