Devo dare la possibilità agli utenti della mia intranet di fare degli upload di file.
Qual'è il metodo + facile per farlo?
io ho un libro ma ci sto capendo poco...
Ale
Devo dare la possibilità agli utenti della mia intranet di fare degli upload di file.
Qual'è il metodo + facile per farlo?
io ho un libro ma ci sto capendo poco...
Ale
guarda fra le pillole (le trovi nel thread in rilievo) mi sembra ci sia un guida esaustiva sugli upload in php
![]()
Il Ticino è biancoblù
DVDS delegato ufficiale
La guida l'ho trovata, ma non capisco una cosa:
Come si vede qui all'inzio si dichiara che la directory temporanea in cui verranno messi i file è $upload_dir.
<?
// QUESTE RIGHE RENDONO LO SCRIPT COMPATIBILE CON LE VERSIONI
// DI PHP PRECEDENTI ALLA 4.1.0
if(!isset($_FILES)) $_FILES = $HTTP_POST_FILES;
if(!isset($_SERVER)) $_SERVER = $HTTP_SERVER_VARS;
/********************* VARIABILI DA SETTARE ********************/
// Directory dove salvare i files Uploadati ( chmod 777, percorso assoluto)
$upload_dir = $_SERVER["DOCUMENT_ROOT"] . "/upload";
// Eventuale nuovo nome da dare al file uploadato
$new_name = "";
// Se $new_name è vuota, il nome sarà lo stesso del file uploadato
$file_name = ($new_name) ? $new_name : $_FILES["upfile"]["name"];
if(trim($_FILES["upfile"]["name"]) == "") {
die("Non hai indicato il file da uploadare !");
}
if(@is_uploaded_file($_FILES["upfile"]["tmp_name"])) {
@move_uploaded_file($_FILES["upfile"]["tmp_name"], "$upload_dir/$file_name")
or die("Impossibile spostare il file, controlla l'esistenza o i permessi della directory dove fare l'upload.");
} else {
die("Problemi nell'upload del file " . $_FILES["upfile"]["name"]);
}
echo "L'upload del file " . $_FILES["upfile"]["name"] . " è avvenuto correttamente";
?>
La cosa che non capisco è:
come fa php a dire al sistema che il file deve andare in quella dir?
Non sò se mi sono spiegato.
Ale
Poi al di la del problema che ho posto precedentemente, adesso, nel mio stupidissimo script, dove sto sbagliando?
Grazie dell'aiuto,
$TMPDIR="/srv/www/agenti/htdocs/images/";
$prima_immagine = $HTTP_POST_FILES['immagine_1']['tmp_name'];
if (is_uploaded_file($prima_immagine)) {
print ("
ok!!!!!");
}
else {
print ("
errore");
}
Ale
No.. il file viene messo su una cartella temporanea (se non sbaglio /tmp).[supersaibal]Originariamente inviato da pig_org
La guida l'ho trovata, ma non capisco una cosa:
Come si vede qui all'inzio si dichiara che la directory temporanea in cui verranno messi i file è $upload_dir.
La cosa che non capisco è:
come fa php a dire al sistema che il file deve andare in quella dir?
Non sò se mi sono spiegato.
Ale [/supersaibal]
$upload_dir è la cartella finale e definitiva in cui verrà salvato il file. Il php sa che il file uploadato viene messo in una determinata cartella con un nome temporaneo. move_uploaded_file() serve appunto a prendere il file dalla cartella temporanea e metterlo in quella definitiva.
Come fa.. beh suppongo esegua comandi di shell di linux (tipo cp o mv) o di dos (move)
Ah, ok, ho capito.
Senti, ma dov'è l'errore qui?
$TMPDIR="/srv/www/agenti/htdocs/images/";
$prima_immagine = $HTTP_POST_FILES['immagine_1']['tmp_name
'];
if (is_uploaded_file($prima_immagine)) {
print ("
ok!!!!!");
}
else {
print ("
errore ");
}
Mi da sempre la scritta errore
Grazie,
Ale
Non uploadda il file.
Hai messo enctype="multipart/form-data" nel tag form?
Si, l'ho messo.
Che errori/orrori ho fatto nello script?
Ale
per non aprire un altro 3d, lo script postato da pig_org, funziona, ma mi da un messaggio di errore:
Impossibile spostare il file, controlla l'esistenza o i permessi della directory dove fare l'upload.
la cosa che mi perplime è che la directory esiste, e ho messo i permessi lettura/scrittura per tutti i gruppi. Ho un mac os x, con apache, e php 4.3.10
sapete cosa potrebbe essere il problema?
![]()