Fare upload di file scegliendo la cartella di destinazione

  • Creatore Discussione Creatore Discussione Max61
  • Data di inizio Data di inizio
Non trova il campo directory
allego errore
Undefined variable: directory in C:\xampp\htdocs\ArchivioToponomastica\views\UploadDelibere.php on line 103

Gli va passato l'indirizzo che sta nel campo linkcartella, ma non mi riesce.

Pensavo di risolvere così
PHP:
$cartella_upload = $_SERVER['DOCUMENT_ROOT'].'/ArchivioToponomastica/views/'.$directory.'/'.$linkcartella;
ma non funziona il valore di linkcartella è 0
 
Ultima modifica:
Penso che non lo trova perchè non gli hai assegnato un valore. Se non sbaglio nella variabile $directory gli dovresti assegnare il valore che recuperi dal database
 
Si ho anche provato a fare una select ma non recupero niente...sicuramente sbaglio qualcosa
 
Se il nome della certalla viene salvato correttamente nel database allora sara sbagliata la query.
Controlla che il nome della cartella sia salvato correttamente nel database.
Dopo controlla come fai la query.
 
Il nome della cartella è corretto prende i valori dai campi che gli passo, la query per recuperare l'ultimo record inserito è questa:
PHP:
 $query = "SELECT linkcartella FROM tblfaldonitoponomastica WHERE id = $id"; 

		$ultimo_idlinkcartella = mysql_insert_id();
            //    ****************** ****************************************** ******************

			$linkcartella =$ultimo_idlinkcartella;	

			echo mysql_insert_id();
Sicuramente sbagliata...
Vedi se puoi aggiustarmela
Grazie
Max61
 
si è sbagliato. Allora
PHP:
//query che prende il valore linkcartella dell'ultimo record inserito
$query = "SELECT linkcartella FROM tblfaldonitoponomastica ORDER BY id DESC limit 1";

$record = mysql_fetch_array($query);

$linkcartella = $record['linkcartella'];
 
Ci siamo quasi, adesso li mette nella cartella principale di nome Delibere insieme alle cartelle che creo, ma mi da ancora questo errore:
Undefined variable: directory in C:\xampp\htdocs\ArchivioToponomastica\views\UploadDelibere.php on line 64

Notice: Undefined variable: linkcartella in C:\xampp\htdocs\ArchivioToponomastica\views\UploadDelibere.php on line 64
 
evidentemente non viene assegnato il valore a linkcartella.
senza codice non riesco a capire
 
codice:
PHP:
//query che prende il valore linkcartella dell'ultimo record inserito
$query = "SELECT linkcartella FROM tblfaldonitoponomastica ORDER BY id DESC limit 1";

$record = mysql_fetch_array($query);

$linkcartella = $record['linkcartella'];  
		//exit;
		
		
// settiamo alcune variabili coinvolte nello script:  
if (isset($_POST['directory'])) {  
  $directory = $_POST['directory'];
}

//$cartella_upload = $_SERVER['DOCUMENT_ROOT'].'/ArchivioToponomastica/views/'.$directory.'/';  
$cartella_upload = $_SERVER['DOCUMENT_ROOT'].'/ArchivioToponomastica/views/'.$directory.'/'.$linkcartella;  
//$cartella_upload = $_SERVER['DOCUMENT_ROOT'].'/ArchivioToponomastica/views/Delibere/';
 
// 2) settiamo un array in cui indichiamo il tipo di file che consentiamo l'upload  
$tipi_consentiti = array("xls","xlsx","doc","docx","pdf");   
    
// 3) settiamo la dimensione massima del file (1048576 byte = 1Mb)  
$max_byte = 99000000000000000000000;  
  
  
// se il form è stato inviato  
if(isset($_POST['up']) and isset($_FILES["upload"]))  
   {  
   // verifichiamo che l'utente abbia selezionato un file  
   if(trim($_FILES["upload"]["name"]) == '')  
      {  
      echo 'Non hai selezionato nessun file!';  
      }  
  
   // verifichiamo che il file è stato caricato  
   else if(!is_uploaded_file($_FILES["upload"]["tmp_name"]) or $_FILES["upload"]["error"]>0)  
      {  
      echo 'Si sono verificati problemi nella procedura di upload!';  
      }  
  
   // verifichiamo che il tipo è fra quelli consentiti  
   else if(!in_array(strtolower(end(explode('.', $_FILES["upload"]["name"]))),$tipi_consentiti))  
      {  
      echo 'Il file che si desidera uplodare non è fra i tipi consentiti!';  
      }  
  
   // verifichiamo che la dimensione del file non eccede quella massima  
   else if($_FILES["upload"]["size"] > $max_byte)  
      {  
      echo 'Il file che si desidera uplodare eccede la dimensione massima!';  
      }  
      
    // verifichiamo che la cartella di destinazione settata esista  
    else if(!is_dir($cartella_upload))  
        {  
        echo 'La cartella in cui si desidera salvare il file non esiste!';  
        }  
      
    // verifichiamo che la cartella di destinazione abbia i permessi di scrittura  
    else if(!is_writable($cartella_upload))  
        {  
        echo "La cartella in cui fare l'upload non ha i permessi!";  
        }  
   // verifichiamo il successo della procedura di upload nella cartella settata  
   else if(!move_uploaded_file($_FILES["upload"]["tmp_name"], $cartella_upload.$_FILES["upload"]["name"]))  
      {  
      echo 'Ops qualcosa è andato storto nella procedura di upload!';  
      }  
  
   // altrimenti significa che è andato tutto ok  
   else  
      { 
	  echo "<h1><span style=\"color:red; font-size: 16pt\"> Upload eseguito correttamente! </h1></span><br>"; 
	  //echo 'Upload eseguito correttamente!';  
      }  
   }
 
fai un echo di $linkcartella per controllare se gli viene assegnato il valore.
 
Sempre lo stesso errore
Undefined variable: directory in C:\xampp\htdocs\ArchivioToponomastica\views\UploadDelibere.php on line 64

Notice: Undefined variable: linkcartella in C:\xampp\htdocs\ArchivioToponomastica\views\UploadDelibere.php on line 64
come se facesse la query
 
A me stampa la funzione che ti ho scritto. La linea 64 si riferisce a
PHP:
$linkcartella = $record['linkcartella'];
?

Inviato dal mio XT1068 utilizzando Tapatalk
 
Ciao, ho provato il codice che allego
PHP:
<?php 
require 'Connessione.php';
 		
//query che prende il valore linkcartella dell'ultimo record inserito
$query = "SELECT linkcartella FROM tblfaldonitoponomastica ORDER BY id DESC limit 1";

$record = mysql_fetch_array($query);
 		
// settiamo alcune variabili coinvolte nello script:  
if (isset($_POST['linkcartella'])) {  
  //$directory = $_POST['directory'];
}

$cartella_upload = $_SERVER['DOCUMENT_ROOT'].'/ArchivioToponomastica/views/Delibere/'.$linkcartella.'/'; 
 
// 2) settiamo un array in cui indichiamo il tipo di file che consentiamo l'upload  
$tipi_consentiti = array("xls","xlsx","doc","docx","pdf");   
    
// 3) settiamo la dimensione massima del file (1048576 byte = 1Mb)  
$max_byte = 9900000000000000;  
  
  
// se il form è stato inviato  
if(isset($_POST['up']) and isset($_FILES["upload"]))  
   {  
   // verifichiamo che l'utente abbia selezionato un file  
   if(trim($_FILES["upload"]["name"]) == '')  
      {  
      echo 'Non hai selezionato nessun file!';  
      }  
  
   // verifichiamo che il file è stato caricato  
   else if(!is_uploaded_file($_FILES["upload"]["tmp_name"]) or $_FILES["upload"]["error"]>0)  
      {  
      echo 'Si sono verificati problemi nella procedura di upload!';  
      }  
  
   // verifichiamo che il tipo è fra quelli consentiti  
   else if(!in_array(strtolower(end(explode('.', $_FILES["upload"]["name"]))),$tipi_consentiti))  
      {  
      echo 'Il file che si desidera uplodare non è fra i tipi consentiti!';  
      }  
  
   // verifichiamo che la dimensione del file non eccede quella massima  
   else if($_FILES["upload"]["size"] > $max_byte)  
      {  
      echo 'Il file che si desidera uplodare eccede la dimensione massima!';  
      }  
      
    // verifichiamo che la cartella di destinazione settata esista  
    else if(!is_dir($cartella_upload))  
        {  
        echo 'La cartella in cui si desidera salvare il file non esiste!';  
        }  
      
    // verifichiamo che la cartella di destinazione abbia i permessi di scrittura  
    else if(!is_writable($cartella_upload))  
        {  
        echo "La cartella in cui fare l'upload non ha i permessi!";  
        }  
   // verifichiamo il successo della procedura di upload nella cartella settata  
   else if(!move_uploaded_file($_FILES["upload"]["tmp_name"], $cartella_upload.$_FILES["upload"]["name"]))  
      {  
      echo 'Ops qualcosa è andato storto nella procedura di upload!';  
      }  
  
   // altrimenti significa che è andato tutto ok  
   else  
      { 
	  echo "<h1><span style=\"color:red; font-size: 16pt\"> Upload eseguito correttamente! </h1></span><br>"; 
	  //echo 'Upload eseguito correttamente!';  
      }  
   }  
?>

Mi da questo errore
Warning: mysql_fetch_array() expects parameter 1 to be resource, string given in C:\xampp\htdocs\ArchivioToponomastica\views\UploadDelibere.php on line 62

[in questa riga:
PHP:
$record = mysql_fetch_array($query);

Ciao
 
Prova a scrivere
PHP:
$result=mysql_query($query);

$record = mysql_fetch_array($result,MYSQL_ASSOC);

Aggiungilo tra la query e la variabile linkcartella

Inviato dal mio XT1068 utilizzando Tapatalk
 
adesso mi da questo errore
Notice: Undefined variable: linkcartella in C:\xampp\htdocs\ArchivioToponomastica\views\UploadDelibere.php on line 79
alla riga
PHP:
$cartella_upload = $_SERVER['DOCUMENT_ROOT'].'/ArchivioToponomastica/views/Delibere/'.$linkcartella.'/';
 

Discussioni simili