Impossibile caricare file su di un sito

neo996sps

Utente Attivo
31 Mag 2007
247
0
0
Trentino
Ciao a tutti,

ho dei problemi nell'upload di file su un webserver. Ho due pagine: una HTML e una PHP. Questo è il form HTML:

Codice:
<center>
<form enctype="multipart/form-data" id="aggiungi_delibera" name="aggiungi_delibera" method="post" action="./salva_delibera.php">
<table class='tabella_3'>

<tr>
<td class="cella_corpo"><label for="data">Data</label></td>
<td class="cella_corpo"><input type="text" id="data" name="data" size="20" tabindex="1" value="<?php print(date("d.m.Y"));?>"/></td>
</tr>

<tr>
<td class="cella_corpo"><label for="categoria">Categoria</label></td>
<td class="cella_corpo">
 <select name="categoria_delibera" tabindex="2">
					  <option value="0" selected>Selezionare la cetegoria</option>
            <option value="1">Delibere di Consiglio</option>
            <option value="2">Delibere di Giunta</option>
            <option value="3">Elenco determinazioni</option>
            <option value="4">Ordinanze</option>
            <option value="5">Bilancio di previsione</option>
            <option value="6">Incarichi</option>
            <option value="7">Albo dei beneficiari</option> 
            </select>
</td>
</tr>

<tr>
<td class="cella_corpo"><label for="titolo">Titolo</label></td>
<td class="cella_corpo"><input type="text" id="titolo" name="titolo" size="40" tabindex="3"/></td>
</tr>

<tr>
<td class="cella_corpo"><label for="fileup">Allegato</label></td>
<td class="cella_corpo"><input type="file" id="fileup" name="fileup" size="40" tabindex="4"/></td>
</tr>
</table>

<br />
<input type="button" id="salva" name="salva" title="salva" value="Salva" tabindex="5" onClick="javascript:controllo();" />
</form>
</center>

e questo è il file per il salvataggio:

Codice:
<?php
session_start();
require("./conf/dbconf.inc.php");
require("./conf/pathdownloads.inc.php");
dbConnect();
$res = mysql_query( "SELECT utenti_accesso.id FROM utenti_accesso, log_accessi WHERE utenti_accesso.id = log_accessi.id_utenti_accesso AND log_accessi.session_id = '".session_id()."';" );
if (mysql_num_rows($res) > 0) {
	$dest_reg = $dest."delibere/";
	$dateform = explode( '/', $_POST["data"] );
	$datafin = $dateform[2].'-'.$dateform[1].'-'.$dateform[0];
	$fileup = $_FILES["fileup"]["name"];
	$selezione = $_POST["categoria_delibera"];
	if (move_uploaded_file($_FILES["fileup"]["tmp_name"], $dest_reg.$fileup)) {
  mysql_query( "INSERT INTO delibere ( data, categoria, titolo, file) VALUES ( '".$datafin."','".$selezione."','".$_POST["titolo"]."','".$fileup."' );" );
	}
	header ("LOCATION: ./elenco_delibere.php");
} else {
	header ("LOCATION: ./i-main.php");
}
dbClose();
?>

e qua regolarmente mi da questo errore:

Codice:
Warning: move_uploaded_file(/var/www/CinteTesinoNew/downloads/delibere/certificatofirefox.pdf) [function.move-uploaded-file]: failed to open stream: No such file or directory in /var/www/site/CinteTesinoNew/gestione/salva_delibera.php on line 13

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/tmp/php9vpz5G' to '/var/www/CinteTesinoNew/downloads/delibere/certificatofirefox.pdf' in /var/www/site/CinteTesinoNew/gestione/salva_delibera.php on line 13

Warning: Cannot modify header information - headers already sent by (output started at /var/www/site/CinteTesinoNew/gestione/salva_delibera.php:13) in /var/www/site/CinteTesinoNew/gestione/salva_delibera.php on line 16

Qualcuno ha la più pallida idea di cosa sia successo?
 
Ultima modifica:
E' quello che credevo anch'io. Così ho provato a postare il percorso completo però non è cambiato nulla. Per il cambiamento ho commentato il require di pathdownload che è dove c'è memorizzato il percorso e ho dato in pasto allo script questa variabile:

PHP:
$dest_reg = "/var/www/site/CinteTesinoNew/delibere/";

però non è cambiato nulla. Il bello è che nell'errore il percorso è giusto ed esiste. Ho provato a copiare tutto il sito dentro ad un'altra cartella e ora funziona... misteri del PHP
 
ciao,
non voglio calpestare eliox, ma prova a mettere dei var dump e vedere cosa ti restituiscono

PHP:
//eccetera.....
if (mysql_num_rows($res) > 0) {
	$dest_reg = $dest."delibere/";
	var_dump($dest_reg);
	$dateform = explode( '/', $_POST["data"] );
	$datafin = $dateform[2].'-'.$dateform[1].'-'.$dateform[0];
	var_dump($_FILES["fileup"]["name"]);
	$fileup = $_FILES["fileup"]["name"];
	var_dump($fileup);
	$selezione = $_POST["categoria_delibera"];
	if (move_uploaded_file($_FILES["fileup"]["tmp_name"], $dest_reg.$fileup)) {
  mysql_query( "INSERT INTO delibere ( data, categoria, titolo, file) VALUES ( '".$datafin."','".$selezione."','".$_POST["titolo"]."','".$fileup."' );" );
	}
	/*e commenta mentre provi i due header
eventualmente metti degli echo per vedere*/
	//header ("LOCATION: ./elenco_delibere.php");
} else {
	//header ("LOCATION: ./i-main.php");
}
//eccetera.....

inoltre l'errore
Warning: Cannot modify header information - headers already sent by (output started at /var/www/site/CinteTesinoNew/gestione/salva_delibera.php:13) in /var/www/site/CinteTesinoNew/gestione/salva_delibera.php on line 16
è dato dal fatto che l'istruzione header deve avvenire prima di qualsiasi uot html (e tu hai i require), così almeno credo
 
ti ringrazio per la tua disponibilità però ho risolto. Dato che il sito attualmente risiede sul mio server di prova ho provato a mettere il tutto in una sottocartella, ho modificato il file con il percorso e ora funziona. Non ho capito perchè non funzionasse nella root del webserver di prova comunque ci studierò
 

Discussioni simili