Buongiorno a tutti, il problema è il medesimo, ma con due tipi diversi di form. Ho pensato, quindi, fosse meglio creare due post separati. L'aiuto che mi serve è per dare la possibilità agli utenti di caricare più file usando un solo campo di input. Ho trovato altre discussioni simili, ma usando il database, mentre io, in questo primo form, archivio i file in una cartella. Ecco il codice che utilizzo, ma che, ora, permette il caricamento di un solo file alla volta. Grazie mille per l'attenzione.
HTML:
PHP:
HTML:
HTML:
<form action="upload-multiple.php" method="post" enctype="multipart/form-data">
<p><label>Full name:</label>
<br><input class="field" type="text" name="name" required /></p>
<p><label>E-mail:</label>
<br><input class="field" type="email" name="email" required /></p>
<p><label>Message: </label>
<br><textarea name="message" required ></textarea></p>
<p><label>File:</label>
<br><input type="file" value="uploadFile" name="userfile" ></p>
<p class="p-captcha">Antispam: <br><img class="img-captcha" id="captcha" src="./captcha.php" alt="captcha"/>
<a class="a-captcha" onclick="reload()"> ↻</a><br>
<label><span class="span-captcha">Type the numbers</span></label><br>
<input type="text" name="captcha" />
</p>
<div class="button-container">
<input class="contact-button" type="reset" value="Reset">
<input class="contact-button" type="submit" value="Send">
</div>
</form>
PHP:
PHP:
session_start();
if ($_POST['captcha'] != $_SESSION['captcha']) {
echo '<script type="text/javascript">alert("Captcha errato / Incorrect captcha");window.history.go(-1);</script>';
die();
}
//Defining mail settings
$to = "[email protected]";
$subject= "Sending files";
$todayis = date("l, F j, Y, g:i a") ;
$name = $_POST['name'];
$email = $_POST['email'];
$message = ($_POST['message']);
$message = "
Date: $todayis
Name: $name
Email: $email
Message: $message
";
// per prima cosa verifico che il file sia stato effettivamente caricato
if (!isset($_FILES['userfile']) || !is_uploaded_file($_FILES['userfile']['tmp_name'])) {
echo '<script type="text/javascript">alert("Nessun file inviato /No file sent");window.history.go(-1);</script>';
}
//percorso della cartella dove mettere i file caricati dagli utenti
$uploaddir = './uploads/';
//Recupero il percorso temporaneo del file
$userfile_tmp = $_FILES['userfile']['tmp_name'];
//recupero il nome originale del file caricato
$userfile_name = $_FILES['userfile']['name'];
// limito la dimensione massima a 4MB
if ($_FILES['userfile']['size'] > 4194304) {
echo '<script type="text/javascript">alert("Il file supera le dimensioni concesse / The file exceeds the size allowed");window.history.go(-1);</script>';
}
// verificare se il file esiste gia nella cartella
$target_file = './uploads/' . $_FILES['userfile']['name'];
if (file_exists($target_file)) {
echo '<script type="text/javascript">alert("Il file esiste gia / The file already exists");window.history.go(-1);</script>';
}
// verificare estensione file caricato
$ext_ok = array('jpg', 'png', 'doc', 'docx', 'pdf');
$temp = explode('.', $_FILES['userfile']['name']);
$ext = end($temp);
if (!in_array($ext, $ext_ok)) {
echo '<script type="text/javascript">alert("Il file ha una estensione non ammessa / The file has an extension not allowed");window.history.go(-1);</script>';
}
//copio il file dalla sua posizione temporanea alla mia cartella uploads
if (move_uploaded_file($userfile_tmp, $uploaddir . $userfile_name) && (mail($to, $subject, $message, $headers))){
echo '<script type="text/javascript">alert("Successo!");window.history.go(-1);</script>';
}
else {
echo '<script type="text/javascript">alert("Error loading file");window.history.go(-1);</script>';
}