Fare upload di file scegliendo la cartella di destinazione

  • Creatore Discussione Creatore Discussione Max61
  • Data di inizio Data di inizio
Scusami se ti chiedo ancora aiuto, ma a questo punto le cartelle non le metto sotto la cartella Delibere ma la tengo dentro views, è meno bello ma funziona.
Una cosa ti volevo chiedere ma se voglio aggiungere un file all'interno di una cartella il cui record non è l'ultimo inserito, questa query come la devo modificare?
PHP:
$query = "SELECT linkcartella FROM tblfaldonitoponomastica ORDER BY id DESC limit 1";

Grazie
Max61
 
Protesti farti ritornare tutti i record e inserirli in in una select in modo tale da poter scegliere la cartella quando vuoi inserire i file

Inviato dal mio XT1068 utilizzando Tapatalk
 
Ciao, ho fatto la select e vedo i nomi delle cartelle inserite
PHP:
$Query1="SELECT id, linkcartella
FROM tblfaldonitoponomastica
GROUP BY linkcartella
ORDER BY linkcartella";

       //esecuzione della query 
     	   $Leggi_linkcartella=@mysql_query($Query1) or die (mysql_error());
       if(!$Leggi_linkcartella)
         print("<H2>Query fallita!</H2>");
       else
	   echo "<select name='linkcartella' id='linkcartellaid'>";//Genera casella a discesa
	   while ($row = mysql_fetch_array($Leggi_linkcartella)) 
{ 
$linkcartella = $row['linkcartella'];

echo "<option value =\"$linkcartella\">$linkcartella </option>"; //Popola casella
}

echo "value=$linkcartella </select>"; 	
//query che prende il valore linkcartella 
$query = "SELECT linkcartella FROM tblfaldonitoponomastica WHERE id='$id'";

//var_dump ( $query ); 
$result=mysql_query($query);

$record = mysql_fetch_array($result,MYSQL_ASSOC); 
$linkcartella=$record['linkcartella']; 
  

// settiamo alcune variabili coinvolte nello script:  
if (isset($_POST['linkcartella'])) {  
}
 
$cartella_upload = $_SERVER['DOCUMENT_ROOT'].'/ArchivioToponomastica/views/'.$linkcartella.'/'; 
//var_dump ( $query );
 echo "Cartella su cui andrai a salvare i files: <br> ", $linkcartella;
 echo "<br><br><br><br>";

// 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 = 990000000;  
  
// 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!';  
      }  
   }

però non carica il file nella cartella della select ma dentro la cartella views.
Mi dai una dritta?
Grazie
Max61
 
Ultima modifica:
la select la devi mettere nel form in modo tale da reuperare il valore con il POST
qua non c'è bisogno che metti value
PHP:
echo "value=$linkcartella </select>";
lascia solo
PHP:
echo "</select>";

poi per recuperare il valore fai
PHP:
if(isset($_POST['linkcartella'])) {
$cartellaselezionata = $_POST['linkcartella'];
}
questa query non ha senso dato che il nome della cartella lo recuperi all'inizio :
PHP:
//query che prende il valore linkcartella 
$query = "SELECT linkcartella FROM tblfaldonitoponomastica WHERE id='$id'";

//var_dump ( $query ); 
$result=mysql_query($query);

$record = mysql_fetch_array($result,MYSQL_ASSOC); 
$linkcartella=$record['linkcartella'];

quindi adesso la variabile diventa :
PHP:
$cartella_upload = $_SERVER['DOCUMENT_ROOT'].'/ArchivioToponomastica/views/'.$cartellaselezionata.'/';
 
Ultima modifica:
la select la devi mettere nel form in modo tale da reuperare il valore con il POST
qua non c'è bisogno che metti value
PHP:
echo "value=$linkcartella </select>";
lascia solo
PHP:
echo "</select>";

poi per recuperare il valore fai
PHP:
if(isset($_POST['linkcartella'])) {
$cartellaselezionata = $_POST['linkcartella'];
}
questa query non ha senso dato che il nome della cartella lo recuperi all'inizio :
PHP:
//query che prende il valore linkcartella 
$query = "SELECT linkcartella FROM tblfaldonitoponomastica WHERE id='$id'";

//var_dump ( $query ); 
$result=mysql_query($query);

$record = mysql_fetch_array($result,MYSQL_ASSOC); 
$linkcartella=$record['linkcartella'];

quindi adesso la variabile diventa :
PHP:
$cartella_upload = $_SERVER['DOCUMENT_ROOT'].'/ArchivioToponomastica/views/'.$cartellaselezionata.'/';



Ciao e grazie ancora per la pazienza, ho provato il codice che allego per vedere se ho capito bene quello che hai scritto
PHP:
$Query1="SELECT id, linkcartella
FROM tblfaldonitoponomastica
GROUP BY linkcartella
ORDER BY linkcartella";

       //esecuzione della query 
     	   $Leggi_linkcartella=@mysql_query($Query1) or die (mysql_error());
       if(!$Leggi_linkcartella)
         print("<H2>Query fallita!</H2>");
       else
	   echo "<select name='linkcartella' id='linkcartellaid'>";//Genera casella a discesa
	   while ($row = mysql_fetch_array($Leggi_linkcartella)) 
{ 
$linkcartella = $row['linkcartella'];

echo "<option value =\"$linkcartella\">$linkcartella </option>"; //Popola casella
}

echo "</select>";  


// settiamo alcune variabili coinvolte nello script:  
if(isset($_POST['linkcartella'])) {
$cartellaselezionata = $_POST['linkcartella'];
}  
 
$cartella_upload = $_SERVER['DOCUMENT_ROOT'].'/ArchivioToponomastica/views/'.$cartellaselezionata.'/';  
//var_dump ( $query );
 echo "Cartella su cui andrai a salvare i files: <br> ", $linkcartella;
 echo "<br><br><br><br>";

// 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 = 990000000;  
  
// 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!';  
      }  
   }

però mi da questo errore
Notice: Undefined variable: cartellaselezionata in C:\xampp\htdocs\ArchivioToponomastica\views\UploadDelibereEdit.php on line 84
 
la select la devi mettere nel form dove fai anche l'upload
PHP:
<form>
//upload
//select
</form>
 
si si l'ho messa li ho anche aggiunto
PHP:
<form>
//upload
//select
</form>
ma fa il solito errore
 
fai un echo qui dentro
PHP:
// settiamo alcune variabili coinvolte nello script:  
if(isset($_POST['linkcartella'])) {
$cartellaselezionata = $_POST['linkcartella'];
}
 
PHP:
$cartella_upload = $_SERVER['DOCUMENT_ROOT'].'/ArchivioToponomastica/views/'.$cartellaselezionata.'/';
Notice: Undefined variable: cartellaselezionata in C:\xampp\htdocs\ArchivioToponomastica\views\UploadDelibereEdit.php on line 86
 
Ultima modifica:
Non lo so perchè ti da quell'errore. L'unica cosa che mi viene in mente è di provare a levare
PHP:
 $_SERVER['DOCUMENT_ROOT'].
e gli inserisci tu il percorso
 
se metti un echo di $cartellaselezionata dopo
PHP:
if(isset($_POST['linkcartella'])) {
$cartellaselezionata = $_POST['linkcartella'];
}
cosa ti da?
 
mi da errore sul rigo dell' echo
Notice: Undefined variable: cartellaselezionata in C:\xampp\htdocs\ArchivioToponomastica\views\UploadDelibereEdit.php on line 84
 
Mi sembra strano che dentro l'if la riconosce e stampa la cartella, mentre fuori dall'if ti da l'errore. Non so più come poterti aiutare
 
Ciao akp ci sono riuscito, stamani ho spostato la query SELECT che era nella form di upload nella form di edit e tramite href ho recuperato l'id e l'ho inviato alla form upload e adesso funziona perfettamente, addirittura adesso prende anche lo slash e quindi salvo le cartelle dentro la cartella Delibere come avevo pensato di fare inizialmente. Visto l'aiuto che mi hai dato ho pensato fosse doveroso farti partecipe. Ciao e ancora grazie.
Max61
 
Sono contento che hai sistemato, grazie di avermi aggiornato;)

Inviato dal mio XT1068 utilizzando Tapatalk
 

Discussioni simili