Salve a tutti. Vorrei fare una sezione interna per un sito in cui l'amministratore può scegliere una cartella e caricare foto in essa. Ho dei problemi, passo ad illustrarvi il codice:
galleryedit.php: creo un elenco delle cartelle contenute in public/gallery (che sarebbero le varie gallerie fotografiche)
Codice PHP:
<?php $path = '../public/gallery';$dirs = scandir($path);foreach ($dirs as $valore) { if($valore === '.' || $valore === '..') { continue; } echo "<a href=uploadimage.php?cartella=$valore> <img src=\"images/icons/edit.png\" title=\"Carica\" width=\"15\" height=\"15\"> </a> $valore </br>";}?>
uploadimage.php: quando clicco sul link di edit della cartella passo alla pagina di upload
Codice PHP:
<?php$path = '../public/gallery';$cartella = $path .'/'. $_GET['cartella'];echo "<form action=\"upload.php?updir=$cartella\" method=\"post\" enctype=\"multipart/form-data\"> <input name=\"image\" type=\"file\" size=\"40\" /> <br /><br /> <input name=\"submit\" type=\"submit\" value=\"Carica immagine\" /></form>";?>
upload.php: e questo è il codice che permette l'upload delle foto
Codice PHP:
<?php
$path = '../public/gallery';$dir = $_GET['updir'];
//dichiaro in automatico il percorso dei files uploadati//calcolo document_root sottraendo il numero di caratteri del path_translatedif(!isset($_SERVER['DOCUMENT_ROOT'])){ if(isset($_SERVER['SCRIPT_FILENAME'])){ $_SERVER['DOCUMENT_ROOT'] = str_replace( '\\', '/', substr($_SERVER['SCRIPT_FILENAME'], 0, 0-strlen($_SERVER['PHP_SELF']))); };}; if(!isset($_SERVER['DOCUMENT_ROOT'])){ if(isset($_SERVER['PATH_TRANSLATED'])){ $_SERVER['DOCUMENT_ROOT'] = str_replace( '\\', '/', substr(str_replace('\\\\', '\\', $_SERVER['PATH_TRANSLATED']), 0, 0-strlen($_SERVER['PHP_SELF']))); };};
$PercorsoDominio = $_SERVER['DOCUMENT_ROOT'];//echo "<br>".$PercorsoDominio;$public = "/$path/$dir";if(is_dir($PercorsoDominio.$public)){
/*echo "<font color=green>Check cartella OK.</font><br>";*/
}else{
/*echo "<font color=red>ATTENZIONE LA CARTELLA DI DESTINAZIONE NON ESISTE. FARE RIFERIMENTO ALLA GUIDA, CREARE LA CARTELLA. UPLOAD NON RIUSCITO</font><br>";*/exit;}
if (( ($_FILES["file"]["type"] == "image/gif")|| ($_FILES["file"]["type"] == "image/jpeg")|| ($_FILES["file"]["type"] == "image/pjpeg"))&& ($_FILES["file"]["size"] < 20000000)) { if ($_FILES["file"]["error"] > 0) { echo "Return Code: " . $_FILES["file"]["error"] . "<br />"; } else { /*echo "Upload: " . $_FILES["file"]["name"] . "<br />"; echo "Tipo: " . $_FILES["file"]["type"] . "<br />"; echo "Dimensione: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />"; echo "File temporaneo: " . $_FILES["file"]["tmp_name"] . "<br />";*/ if (file_exists($PercorsoDominio. $public . $_FILES["file"]["name"]))
{ /*echo $_FILES["file"]["name"] . " esistente. ";*/ } else { move_uploaded_file($_FILES["file"]["tmp_name"], $PercorsoDominio. $public . $_FILES["file"]["name"]);
include("uploadsuccess.php"); } } }else { include("uploaderror.php"); } ?>
Il risultato però è una pagina bianca, e le foto non si caricano. Dove potrei avere sbagliato?
Grazie!