upload file

andy2481

Utente Attivo
10 Dic 2012
142
0
0
upload di flie
qual'è la stringa in html e in php
potete postarmi tutte e 2 codci per favore
 

Nefyt

Utente Attivo
17 Apr 2012
1.102
0
0
In che senso? Innanzitutto in php per accedere ai dati di un file inviato tramite form si usa $_FILES (quindi $_FILES['file']), poi per il form devi semplicemente mettere un campo di tipo file e aggiungere l'enctype al form
 

luigi777

Utente Attivo
14 Feb 2008
1.086
1
38
42
Massa, Italy
upload di flie
qual'è la stringa in html e in php
potete postarmi tutte e 2 codci per favore

ciao vedi se fa caso tuo:
PHP:
<?php
ini_set("upload_max_filesize", "50M");
define("UPLOAD_DIR", "./upload/");

if(isset($_POST['action']) and $_POST['action'] == 'upload')
{
    if(isset($_FILES['user_file']))
    {
        $file = $_FILES['user_file'];
        if($file['error'] == UPLOAD_ERR_OK and is_uploaded_file($file['tmp_name']))
        {
            move_uploaded_file($file['tmp_name'], UPLOAD_DIR.$file['name']);
        }
    }
}

?> 
<html>
    <head>
        <title>File upload</title>
    </head>
    <body>
        <form method="post" action="upload_file.php" enctype="multipart/form-data">
            <input type="hidden" name="action" value="upload" />
            <label>Carica il tuo file:</label>
            <input type="file" name="user_file" />
            <br />
            <input type="submit" value="Carica online" />
        </form>
    </body>
</html>
buona notte a domani.
 

andy2481

Utente Attivo
10 Dic 2012
142
0
0
ancora no

HTML:
<form name="preventivo" action="preventivo.php" method="post">

<table border="0" cellspacing="5" cellpadding="5">
<tr>
<td>Nome:</td><td><input type="text" name="nome" size="40" maxlength="40" value=""></td>
</tr><tr>
<td>E-mail:</td><td><input type="text" name="email" size="40" maxlength="40" value=""></td>
</tr><tr>
<td>Telefono:</td><td><input type="text" name="telefono" size="40" maxlength="40" value=""></td>
</tr><tr>
<td valign="middle">Inserisci<br>qui di lato <br>il tuo commento</td>
<td><textarea name="commento" rows="8" cols="50"></textarea></td></tr>
  <td>Documentazzione:</td>
  <td><input type="hidden" name="action" value="upload" /><input type="file" name="user_file" /></td>
</tr><tr><tr><td></td><td><input type=submit value="Invia i Dati"><input type=reset value="Annulla"></td></tr>
</table>
</form>


PHP:
<?php
        foreach($_POST as $key=>$value) $_POST[$key] = htmlspecialchars($value);  
	$colore_sfondo="#82C0FF";
	$colore_testo="#FFFF80";
	$font="verdana";
	$font_size=2;
	$nome  = "MIME-Version: 1.0\r\n";
	$nome .= "Content-type: text/html; charset=iso-8859-1\r\n";
	//intestazioni per il mittente
	$nome .= "From: Papillon-Events<www.papillon-events.it>\r\n";
	$testo="<html><head><title>Preventivo</title></head><body bgcolor=\"" . $colore_sfondo . "\">"; //non occorre specificare attributi per il tag title, tuttavia li inseriamo per correttezza. Tenete presente che potete inserire style.
	$testo.="<font face=\"sans-serif, Arial, Verdana" . $font . "\" size=\"12" . $font_size . "\" colore=\"#0000FF" . $colore_testo . "\">Questa email ti è stata inviata dal sito.<br> L'utente  " . $_POST['nome'] . " (a cui puoi rispondere e telefonare a: <a href=\"mailto:" . $_POST['email'] . $_POST['telefono'] "\">" . " $_POST[['email'] . " </a>), <br>Ti ha scritto: " . $_POST['testo'] . "</font>";
	$testo.="</body></html>";
	ini_set("upload_max_filesize", "50M"); 
    
         if(isset($_POST['action']) and $_POST['action'] == 'upload') 
        { 
        if(isset($_FILES['user_file'])) 
        { 
        $file = $_FILES['user_file']; 
        if($file['error'] == UPLOAD_ERR_OK and is_uploaded_file($file['tmp_name'])) 
        { 
            move_uploaded_file($file['tmp_name'], UPLOAD_DIR.$file['name']); 
        } 
         } 
        } 
	if($email==""){
         echo "Non hai inserito la tua email";
	} elseif($testo==""){
		echo " Non hai inserito il testo";
	} elseif($telefono==""){
		echo " Non hai inserito il numero di telefono";
         else{
	mail( "[email protected]", "Invio email da: " . " $_POST['nome'] . " " . $_POST['email'] . " " . $_POST['telefono'] );
	echo " la tua email è stata inviata";
	}
?>
 

andy2481

Utente Attivo
10 Dic 2012
142
0
0
non riesco ad assembrarlo

mi dispiace rompervi le scatole ma non riesco ad assemblare il tutto
questa è la pagina html
HTML:
<form name="preventivo" action="preventivo.php" method="post">

<table border="0" cellspacing="5" cellpadding="5">
<tr>
<td>Nome:</td><td><input type="text" name="nome" size="40" maxlength="40" value=""></td>
</tr><tr>
<td>E-mail:</td><td><input type="text" name="indirizzo" size="40" maxlength="40" value=""></td>
</tr><tr>
<td>Telefono:</td><td><input type="text" name="telefono" size="40" maxlength="40" value=""></td>
</tr><tr>
<td valign="middle">Inserisci<br>qui di lato <br>il tuo commento</td>
<td><textarea name="testo" rows="8" cols="50"></textarea></td></tr>
  <td>Documentazzione:</td>
  <td><input type="hidden" name="action" value="upload" /><input type="file" name="user_file" /></td>
</tr><tr><tr><td></td><td><input type=submit value="Invia i Dati"><input type=reset value="Annulla"></td></tr>
</table>
</form>
potreste darci un occhiata questa è la pagina php

PHP:
<html>
<body>
<?php
        foreach($_POST as $key=>$value) $_POST[$key] = htmlspecialchars($value);  
	$colore_sfondo="#82C0FF";
	$colore_testo="#FFFF80";
	$font="verdana";
	$font_size=2;
	$intestazioni  = "MIME-Version: 1.0\r\n";
	$intestazioni .= "Content-type: text/html; charset=iso-8859-1\r\n";
	//intestazioni per il mittente
	$intestazioni .= "From: Papillon-Events Preventivo<[email protected]>\r\n";
	$messaggio="<html><head><title></title></head><body bgcolor=\"" . $colore_sfondo . "\">"; //non occorre specificare attributi per il tag title, tuttavia li inseriamo per correttezza. Tenete presente che potete inserire style.
	$messaggio.="<font face=\"" . $font . "\" size=\"" . $font_size . "\" colore=\"" . $colore_testo . "\">Questo preventivo ti è stato inviat0 dal sito Papillon-Events.<br> L'utente  " . $_POST['nome'] . " (a cui puoi rispondere a: <a href=\"mailto:" . $_POST['indirizzo'] . "\">" . $_POST['indirizzo'] . "</a>), il suo numero di telefono é  " . $_POST['telefono'] . ".<br>Ti ha scritto: " . $_POST['testo'] . "</font>";
	$messaggio.="
	ini_set("upload_max_filesize", "50M"); 
define("UPLOAD_DIR", "./upload/"); 

if(isset($_POST['action']) and $_POST['action'] == 'upload') 
{ 
    if(isset($_FILES['user_file'])) 
    { 
        $file = $_FILES['user_file']; 
        if($file['error'] == UPLOAD_ERR_OK and is_uploaded_file($file['tmp_name'])) 
        { 
            move_uploaded_file($file['tmp_name'], UPLOAD_DIR.$file['name']); 
        } 
    } ini_set("upload_max_filesize", "50M"); 
define("UPLOAD_DIR", "./upload/"); 

if(isset($_POST['action']) and $_POST['action'] == 'upload') 
{ 
    if(isset($_FILES['user_file'])) 
    { 
        $file = $_FILES['user_file']; 
        if($file['error'] == UPLOAD_ERR_OK and is_uploaded_file($file['tmp_name'])) 
        { 
            move_uploaded_file($file['tmp_name'], UPLOAD_DIR.$file['name']); 
        } 
    } 
}
}
	
	
	
	</body></html>";
	if($indirizzo==""){
         echo "Non hai inserito la tua email";
	} elseif($testo==""){
		echo " Non hai inserito il testo";
		}else{
	mail( "[email protected]", "Invio email da: " . $_POST['nome'], $messaggio, $intestazioni );
	echo "La tua email è stata inviata";
	}
	
?>

<br><center><a href="javascript:history.bach()">torna indietro</a></center>
</body>
</html>



il file caricati dovrebbero arrivare alla mia email
 
Ultima modifica:

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
sto guardando un pezzettino alla volta.
intanto vedo che trasmetti un file quindi nel codice manca enctype="multipart/form-data"
HTML:
<form name="preventivo" action="preventivo.php" method="post" enctype="multipart/form-data">
poi (se non ho capito male) vuoi inviare anche l'allegato quindi:
1) leggi https://www.mrw.it/php/articoli/inviare-email-allegati-usando-php_497.html
2) poi abbandona la funzione mail() e guarda la classe phpmailer
in generale
https://www.mrw.it/php/articoli/inviare-email-classe-phpmailer_631.html
e per allegati
https://www.mrw.it/php/articoli/inviare-email-classe-phpmailer_631_5.html

edit
dimenticavo: guarda lo script: quando le funzioni/istrusioni di php (es) if sono rosse e non if con molta probabilità ha chiuso male degli apici (singoli e/o doppi)
 
Ultima modifica:

andy2481

Utente Attivo
10 Dic 2012
142
0
0
ho letto

ho letto in questo momento la guida di ms web master e d è andato tutto a buon fine ora devo solo personalizzarmelo graxie di tutto siete fantasci mi aiutate sempre
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
dimenticavo una cosa importante:
quando ti fai inviare degli allegati devi verificare prima il tipo, immagino che ti darebbe "fastidio" che ti inviassero qualcosa del tipo cancella_tutto_hd.exe o porcherie simili
 

andy2481

Utente Attivo
10 Dic 2012
142
0
0
ok

e cosa devo fare??
poi un altra cosa come è possibile che su altervista email mi arriva con successo e su aruba no
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
ti schematizzo
PHP:
<?php
//.........
$file_ammessi=array('doc','jpg','txt','pdf'); //le estenzioni dei file che puoi accettare
$tipo_allegato=pathinfo($_FILES['user_file']['name', PATHINFO_BASENAME);// togli il percorso
$tipo_allegato=pathinfo($_FILES['user_file']['name', PATHINFO_EXTENSION);// estrai l'estenzione
//poi dove fai i controlli
//...
elseif(!in_array($tipo_allegato, $file_ammessi)){//non c'è tra le estenzioni ammessse
	echo "li fine non è un tipo consentito";
}//....ecc...
?>

p.s.
i controlli che fai non sono molto performanti, es, verifichi che $email non sia vuoto, ma uno potrebbe scrivere pinco_pallo nel campo di input, ma pinco_pallo non è certo un indirizzo valido
 

andy2481

Utente Attivo
10 Dic 2012
142
0
0
mi da errore

mi da errore dopo che ho aggiunto il codice consigliato
PHP:
<?php
 
// Recupero il valore dei campi del form
$nome = $_POST['nome'];
$destinatario = $_POST['destinatario'];
$mittente = $_POST['mittente'];
$telefono = $_POST['telefono'];
$messaggio = $_POST['messaggio'];

// Valorizzo le variabili relative all'allegato
$allegato = $_FILES['allegato']['tmp_name'];
$allegato_type = $_FILES['allegato']['type'];
$allegato_name = $_FILES['allegato']['name'];

// Creo 2 variabili che riempirò più avanti...
$headers = "From: " . $mittente;
$msg = "";

// Verifico se il file è stato caricato correttamente via HTTP
// In caso affermativo proseguo nel lavoro...
if (is_uploaded_file($allegato))
{
  // Apro e leggo il file allegato
  $file = fopen($allegato,'rb');
  $data = fread($file, filesize($allegato));
  fclose($file);

  // Adatto il file al formato MIME base64 usando base64_encode
  $data = chunk_split(base64_encode($data));

  // Genero il "separatore"
  // Serve per dividere, appunto, le varie parti del messaggio.
  // Nel nostro caso separerà la parte testuale dall'allegato
  $semi_rand = md5(time());
  $mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";
  
  // Aggiungo le intestazioni necessarie per l'allegato
  $headers .= "\nMIME-Version: 1.0\n";
  $headers .= "Content-Type: multipart/mixed;\n";
  $headers .= " boundary=\"{$mime_boundary}\"";

  // Definisco il tipo di messaggio (MIME/multi-part)
  $msg .= "This is a multi-part message in MIME format.\n\n";

  // Metto il separatore
  $msg .= "--{$mime_boundary}\n";

  // Questa è la parte "testuale" del messaggio
  $msg .= "Content-Type: text/plain; charset=\"iso-8859-1\"\n";
  $msg .= "Content-Transfer-Encoding: 7bit\n\n";
  $msg .= $messaggio . "\n\n";

  // Metto il separatore
  $msg .= "--{$mime_boundary}\n";

  // Aggiungo l'allegato al messaggio
  $msg .= "Content-Disposition: attachment;\n";
  $msg .= " filename=\"{$allegato_name}\"\n";
  $msg .= "Content-Transfer-Encoding: base64\n\n";
  $msg .= $data . "\n\n";
  // chiudo con il separatore
  $msg .= "--{$mime_boundary}--\n";





   //......... 
$file_ammessi=array('doc','jpg','txt','pdf'); //le estenzioni dei file che puoi accettare 
$tipo_allegato=pathinfo($_FILES['user_file']['name', PATHINFO_BASENAME);// togli il percorso 
$tipo_allegato=pathinfo($_FILES['user_file']['name', PATHINFO_EXTENSION);// estrai l'estenzione 
//poi dove fai i controlli 
//... 
elseif(!in_array($tipo_allegato, $file_ammessi)){//non c'è tra le estenzioni ammessse 
    echo "li fine non è un tipo consentito"; 
}//....ecc... 








}
else
{
  $msg = $messaggio;
}

// Invio la mail
if (mail($destinatario,  $telefono, $msg, $headers))
{
  echo "<p>Mail inviata con successo!</p>";
}else{
  echo "<p>Errore!</p>";
}
?>


ho distanzioato il percorso per un giusta visione
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
mi sembra che tu l'abbia messo nel posto sbagliato
PHP:
<?php
//...
$file_ammessi=array('doc','jpg','txt','pdf'); //le estenzioni dei file che puoi accettare
$tipo_allegato=pathinfo($_FILES['user_file']['name'], PATHINFO_BASENAME);// togli il percorso
$tipo_allegato=pathinfo($_FILES['user_file']['name'], PATHINFO_EXTENSION);// estrai l'estenzione 
if(!filter_var($email, FILTER_VALIDATE_EMAIL)){//modifica anche questa ti verifica che sia [email protected]
	echo "Non hai inserito la tua email";
} elseif($testo==""){
        echo " Non hai inserito il testo";
} elseif($telefono==""){
        echo " Non hai inserito il numero di telefono";
} elseif(!in_array($tipo_allegato, $file_ammessi)){//non c'è tra le estenzioni ammessse
    echo "il file non è un tipo consentito";
}else{
    mail( "[email protected]", "Invio email da: " .  $_POST['nome'] . " " . $_POST['email'] . " " . $_POST['telefono'] );//questa devi correggerla come avevi fatto
    echo " la tua email è stata inviata";
}
//...
?>
poi (errore mio) di copy/paste: mancava una ]
$_FILES['user_file']['name'

edit
dimenticavo, guarda che in
$file_ammessi=array('doc','jpg','txt','pdf');
devi mettere le estenzioni che ti servono , aggiungere o eliminare quelle che ho messo io
 
Ultima modifica:

andy2481

Utente Attivo
10 Dic 2012
142
0
0
come è possibile

come è possibile che su altervista mi manda l' email e su aruba no

poi sto provando e riprovando ma non riesco ancora a concatenare la tua parte di codice con quella mia faccio altri tentativi se non ci riesco posso postare il tutto e ricevere l'ennesimo aiuto?
 
Discussioni simili
Autore Titolo Forum Risposte Data
L Modifica file upload in ASP Classic ASP 2
S Upload file senza doverlo selezionare PHP 2
G Upload file error Apache 0
R Modifica codice per l'upload di più file PHP 1
S [PHP] Upload stesso file PHP 14
G [PHP] upload file in server: percorso cartella PHP 2
M Upload 4 file php PHP 11
M [ASP] Upload file da form controllo Classic ASP 5
M [PHP] Nome file, upload e rinominare PHP 2
M [PHP] upload di un file esistente overwrite PHP 1
N [PHP] Test per l'upload di file attraverso un bot Telegram PHP 2
C [PHP] Problema upload file (multiplo) PHP 1
S [PHP] Upload file... PHP 6
P Barra upload file jQuery 1
giancadeejay [PHP] Aggiornare DB tramite UPLOAD file .csv PHP 39
V [PHP] upload di file in cartella e sua sicurezza PHP 137
T [ASP] upload file Classic ASP 3
V File upload.php della guida, ma ha un errore PHP 8
M Fare upload di file scegliendo la cartella di destinazione PHP 78
M rinominare file in upload PHP 3
Y script per upload file PHP 9
Devil-94 rimuovere i spazi del file in upload... PHP 1
R Problema upload file PHP 1
S Indicare una directory di destinazione per l'upload di un file PHP 1
M Errore nell'Upload di un file PHP 0
Nik Implementare script "upload file" nel proprio sito web... tramite google drive Javascript 1
francesco7 [Problema] esecuzione script Upload file in php PHP 0
I upload file php / javascript / mysql PHP 0
D Upload file in cartella con progress bar PHP 6
R upload file php PHP 5
P upload e rename file PHP 2
xone Form con campi input text e upload file PHP 4
A Upload in App Android (sfoglia file) Sviluppo app per Android 1
F Errore filezilla upload file Hosting 1
R upload multiplo di file PHP 7
F upload file PHP 1
M Upload di n solo file in due cartelle diverse PHP 4
C ridurre dimensione file immagine prima dell'upload Javascript 0
F Problema con upload di file PHP 1
P Upload file html speciale HTML e CSS 3
M Adattare script di "form mail con upload file" al mio form mail HTML! PHP 7
G UPLOAD con controllo esistenza file Classic ASP 0
M upload file con progress bar PHP 10
F pagina bianca upload file Joomla 0
E upload file in un web server, da un'altro web server PHP 2
I upload di piu file contemporaneamente PHP 1
F upload file da iphone,ipadragazzi... PHP 3
M Upload file progress bar Javascript 10
S Upload file con IIS7? Web Server 0
S Upload file PHP 21

Discussioni simili