- Home
- Categorie
- Coding e Sistemistica
- PHP
- Upload file in php da zero
-
infatti l'enctype va inserito insieme a method, id, e action, risultando:
<form action="invio.php" method="post" id="modulo" enctype="multipart/form-data">Ovviamente per caricare un file, devi mettere nel tuo form:
<input type="file" name="allegato">E carichi il tutto col pulsante "invia" del form.
p.s. nel codice php che ti ho scritto prima, dove c'è la variabile "$_FILES['foto']", "foto" è il nome dell'input file ke hai nel form html; se nel form metti un input file con name="allegato" (come ho fatto poco prima), nella pagina php richiamerai quel valore con "$_FILES['allegato']".
-
Stò provando adesso
ma poi i file allegati dove vanno?
-
Vanno in una directory che io ho chiamato:
$updir = "./dir_upload/";
cioè una cartella che sta nella stessa posizione del file "invio.php" che elabora il tutto.
-
La crea da sola?
E il link nella email?
-
Nel codice php che ti ho scritto prima, se non esiste quella directory te la crea automaticamente.
Il link da mettere nella mail è l'url assoluto del tuo sito (compreso di http e di www) concatenato la variabile $new_path.
-
Mi carica i files uploadati sul server, come posso cambiarla directory? La voglio mettere in una cartella che si chiama uploads
e il link nella mia_email per vedere il file allegato?
-
Se vuoi cambiare directory, basta cambiare il valore della variabile $updir nel mio script php;
leggi sopra come è composto il link dell'allegato....
-
Così?
$link_allegato = "http://www.miosito.net/uploads.$new_path";
-
Sostituisci il "." tra uploads e $new_path con "/" e sei a posto!
-
La cartella si è creata dir_upload mi va bene ma i files non ci sono all'interno, non carica....
-
Hai provato a togliere il limite sulla dimensione e il filtro sulle estensioni? Se vuoi tenere queste limitazioni, sei costretto a rispettarle...
-
Ho fatto > al posto di <
if ($_FILES['file'] > 500000)
qua dici?
Non funziona lo stesso.
-
Prova a scrivere** if (true)**, toglilo per ora il controllo, così vediamo se è quello il problema; e così fai anche dove controlla l'estensione del file da caricare; sono quei 2 gli unici controlli che potresti non rispettare nel caricare il file, perchè i permessi di scrittura nella cartella ci sono tutti (0777 di default), l'unico intoppo possono essere quei 2 controlli.
Toglili e riprova.
-
Niente ancora... non carica li files....
-
Ma if (true)
al posto di
if ($_FILES['file'] < 500000)?
Ma alla fine non ci vuole ---> ;
-
questo è il codice
[php] if ($_FILES['file']['name'] != '')
{
$updir = "./dir_upload/"; // il percorso dove upload i file sul server
if (!is_dir($updir))
mkdir($updir);
$ext = $_FILES['file']['type'];
if ($FILES['file'] < 500000);
{
if (($ext == 'image/jpeg') | ($ext == 'image/jpg') | ($ext == 'image/pjpeg') | ($ext == 'image/gif') | ($ext == 'image/png') | ($ext == 'image/x-png') | ($ext == 'image/bmp') | ($ext == 'image/tiff'))
{
$nome = str_replace(' ','',$FILES['file']['name']);
$nome = str_replace("'","",$nome);
$new_path = $updir.$nome;
if (!move_uploaded_file($_FILES['foto']['tmp_name'],$new_path))
die ("errore nel caricamento file!");
else
{
$link_allegato = "http://www.miositonet/uploads/$new_path"; // il link che ti invia via email
/* invia la mail con nel testo la variabile $link_allegato */
}
}
}
}?>[/php]
-
la cartella la crea ma il file all'interno nn c'è....
-
Ma se mkdir($updir); viene sotituito cn md5.. ricordo una cosa del genere
??ì'
-
Magicamente i files compaiono in dir_upload ma nella email non riesco a vedere il link che mi fa vedere l'immagine.
Che fare?
-
Il problema adesso è il seguente:
l'upload mi funziona ma nella email non vedo nessun link che mi rimanda all'immagine.
Come posso ovviare a ciò?
Un'altra cosa, questa funzioneif (!move_uploaded_file($_FILES['file']['tmp_name'],$new_path))
die ("errore nel caricamento file!");
else
{
$link_allegato = "http://www.miositonet/dir_upload/$new_path";dice: se l'upload non avviene inviami il link.... vero?
ma se non avviene l'upload il link della cartella vuota mi dovrebbe arrivare?Ma neanche quello mi arriva.
if (!move_uploaded_file($_FILES['file']['tmp_name'],$new_path))
die ("errore nel caricamento file!");
else
{
$link_allegato = "http://www.miosito.net/dir_upload/$new_path";questa funzione è giusta?
Grazie