Pour la page receptrice.php:<form name="form" method="post" action="page_receptrice.php" enctype="multipart/form-data">
<p>
<!-- Taille maximale en octets. Non sécurisé car facilement contournable !! -->
<input type="hidden" name="MAX_FILE_SIZE" value="100000" />
Veuillez sélectionner un fichier à uploader:
<input type="file" name="aFile" />
</p>
<!-- Taille maximale en octets. Non sécurisé car facilement contournable !! -->
<input type="hidden" name="MAX_FILE_SIZE" value="100000" />
Veuillez sélectionner un fichier à uploader:
<input type="file" name="aFile2" id="aFile2" />
</p>
<p>
<input type="submit" name="submitFile" value="Envoyer le fichier" />
</p>
</form>
Je crois commprendre un peu, j'ai donné la valeur "aFile2" au 2eme champs d'envoi mais je ne l'ai pas déclarer dans la page receptrice.php ??<?php
/**
* function formatFileName
* @access public
* @param string - nom de fichier à formater
* @param int - longueur maximale autorisée pour le nom de fichier
* @return string - nom de fichier formaté
* @desc Tronque éventuellement le nom de fichier, le convertit en minuscules et
* y élimine les caractères potentiellement dangereux.
*/
function formatFileName($aFileName, $aMaxLength = 50) {
$aFileName = strToLower(subStr($aFileName, 0, $aMaxLength));
$aFileName = ereg_replace('[^a-zA-Z0-9,._\+\()\-]', '_', $aFileName);
return $aFileName;
} // end of function formatFileName() /2
/* PARAMETRES DE CONFIGURATION DU SCRIPT
*/
// chemin d'accès au répertoire d'upload (vers où le fichier uploadé temporaire sera transféré)
// ce répertoire doit EXISTER et être ACCESSIBLE EN ECRITURE !!
$destination_dir = 'G:\mov_amp\MovAmp_Joomla_1-5-2_FR\mnt\var\www\test_php\upload_de_fichiers\photos';
// taille maximale en octets du fichier à uploader
$file_max_size = 1000000;
// extensions de fichiers autorisées
$authorized_extensions = array('zip', 'zip');
/* TRAITEMENT PRINCIPAL
*/
// vérifie l'existence du répertoire de destination
if (!is_dir($destination_dir)) {
echo 'Veuillez indiquer un répertoire destination correct !';
die();
}
// vérifie que répertoire de destination a des droits en écriture
if (!is_writeable($destination_dir)) {
echo 'Veuillez spécifier des droits en écriture pour le répertoire destination !';
die();
}
// réception du formulaire
if (isSet($_POST['submitFile'])) {
// vérifie qu'un fichier a bien été soumis
if (isSet($_FILES) && is_array($_FILES)) {
// pas d'erreur lors de l'upload
if ($_FILES['aFile']['error'] == UPLOAD_ERR_OK) {
// vérifie la taille en octets
if ($_FILES['aFile']['size'] <= $file_max_size) {
// vérifie l'extension du fichier recu
// il est aussi possible (et sans doute mieux) de se baser sur $_FILES['aFile']['type']
// qui retourne le type MIME correspondant (par exemple: image/pjpeg)
$lastPos = strRChr($_FILES['aFile']['name'], ".");
if ($lastPos !== false && in_array(strToLower(subStr($lastPos, 1)), $authorized_extensions)) {
// définit un nom de fichier destination unique à partir du nom du fichier original formaté
$destination_file = time().formatFileName($_FILES['aFile']['name']);
// déplace le fichier uploadé du répertoire temporaire
// vers les répertoire/fichier destination spécifiés
if (move_uploaded_file($_FILES['aFile']['tmp_name'],
$destination_dir.DIRECTORY_SEPARATOR.$destination_file)) {
echo 'Fichier valide et uploadé correctement.';
} else { // error sur move_uploaded_file
echo 'Le fichier n\'a pas été uploadé correctement !';
}
} else { // pas d'extension ou mauvaise extension
echo 'Mauvaise extension, le fichier n\'est pas un zip ou rar </br> vérifier l\'extention de votre fichier !';
}
} else { // Taille maximale dépassée
echo 'Fichier trop volumineux !';
}
} else { // Erreur lors de l'upload
switch ($_FILES['aFile']['error']){
case UPLOAD_ERR_INI_SIZE:
echo 'Le fichier uploadé dépasse la valeur spécifiée
pour upload_max_filesize dans php.ini.';
break;
case UPLOAD_ERR_FORM_SIZE:
echo 'Le fichier uploadé dépasse la valeur spécifiée
pour MAX_FILE_SIZE dans le formulaire d\'upload.';
break;
case UPLOAD_ERR_PARTIAL:
echo 'Le fichier n\'a été que partiellement uploadé.';
break;
default:
echo 'Aucun fichier n\'a été uploadé.';
} // switch
}
} else { // aucun fichier reçu
echo 'Pas de fichier recu';
}
} // fin de réception de formulaire
?>
/* TRAITEMENT PRINCIPAL
*/
// vérifie l'existence du répertoire de destination
if (!is_dir($destination_dir)) {
echo 'Veuillez indiquer un répertoire destination correct !';
die();
}
// vérifie que répertoire de destination a des droits en écriture
if (!is_writeable($destination_dir)) {
echo 'Veuillez spécifier des droits en écriture pour le répertoire destination !';
die();
}
// réception du formulaire
if (isSet($_POST['submitFile'])) {
// vérifie qu'un fichier a bien été soumis
if (isSet($_FILES) && is_array($_FILES)) {
// pas d'erreur lors de l'upload
if ($_FILES['aFile']['error'] == UPLOAD_ERR_OK) {
// vérifie la taille en octets
if ($_FILES['aFile']['size'] <= $file_max_size || $_FILES['aFile2']['size'] <= $file_max_size ) {
// vérifie l'extension du fichier recu
// il est aussi possible (et sans doute mieux) de se baser sur $_FILES['aFile']['type']
// qui retourne le type MIME correspondant (par exemple: image/pjpeg)
$lastPos = strRChr($_FILES['aFile']['name'], ".");
$lastPos2 = strRChr($_FILES['aFile2']['name'], ".");
if ($lastPos !== false && in_array(strToLower(subStr($lastPos, 1) || $lastPos2 !== false && in_array(strToLower(subStr($lastPos2, 1)), $authorized_extensions)) {
// définit un nom de fichier destination unique à partir du nom du fichier original formaté
$destination_file = time().formatFileName($_FILES['aFile']['name']);
$destination_file2 = time().formatFileName($_FILES['aFile2']['name']);
// déplace le fichier uploadé du répertoire temporaire
// vers les répertoire/fichier destination spécifiés
if (move_uploaded_file($_FILES['aFile']['tmp_name'],
$destination_dir.DIRECTORY_SEPARATOR.$destination_file) || move_uploaded_file($_FILES['aFile2']['tmp_name'],
$destination_dir.DIRECTORY_SEPARATOR.$destination_file2)) {
echo 'Fichier valide et uploadé correctement.';
} else { // error sur move_uploaded_file
echo 'Le fichier n\'a pas été uploadé correctement !';
}
} else { // pas d'extension ou mauvaise extension
echo 'Mauvaise extension, le fichier n\'est pas un zip ou rar </br> vérifier l\'extention de votre fichier !';
}
} else { // Taille maximale dépassée
echo 'Fichier trop volumineux !';
}
} else { // Erreur lors de l'upload
switch ($_FILES['aFile']['error']){
case UPLOAD_ERR_INI_SIZE:
echo 'Le fichier uploadé dépasse la valeur spécifiée
pour upload_max_filesize dans php.ini.';
break;
case UPLOAD_ERR_FORM_SIZE:
echo 'Le fichier uploadé dépasse la valeur spécifiée
pour MAX_FILE_SIZE dans le formulaire d\'upload.';
break;
case UPLOAD_ERR_PARTIAL:
echo 'Le fichier n\'a été que partiellement uploadé.';
break;
default:
echo 'Aucun fichier n\'a été uploadé.';
} // switch
switch ($_FILES['aFile2']['error']){
case UPLOAD_ERR_INI_SIZE:
echo 'Le fichier uploadé 2 dépasse la valeur spécifiée
pour upload_max_filesize dans php.ini.';
break;
case UPLOAD_ERR_FORM_SIZE:
echo 'Le fichier uploadé 2 dépasse la valeur spécifiée
pour MAX_FILE_SIZE dans le formulaire d\'upload.';
break;
case UPLOAD_ERR_PARTIAL:
echo 'Le fichier 2 n\'a été que partiellement uploadé.';
break;
default:
echo 'Aucun fichier 2 n\'a été uploadé.';
} // switch
}
} else { // aucun fichier reçu
echo 'Pas de fichier recu';
}
} // fin de réception de formulaire
?>
Essai mais ca se peut qu'il y ai des fautes ...<?php
session_start();
$_SESSION['key'] = rand (12345,56789);
//$nom_du_dossier_a_creer = 'CDAB'.date('Ymdhis'); a chaque chargement de la page on génère un nom de dossier correspondant à la date
$nom_du_dossier_a_creer = $_POST['champs1'];
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>NAS Uploader - Upload multiple</title>
<script language="JavaScript" type="text/javascript" src="Scripts/jsscript.js"></script>
<script language="JavaScript" type="text/javascript" src="Scripts/swfobject.js"></script>
<style type="text/css">
<!--
.style1 {
color: #FFFFFF;
font-weight: bold;
}
-->
</style>
</head>
<body>
<h1>Upload multiple lancé via javascript </h1>
On affiche 1 si c'est bon et un point à la fin de l'exécution du script car la réponse attendue est <strong>1.</strong> si tout s'est bien passé. <br />
<form id="form_upload" name="form_upload" method="post" action="">
<strong>Formulaire </strong><br />
Ici
le bouton envoyer est toujours présent dans l'animation Flash mais le <strong>formulaire HTML</strong> est lui aussi muni d'un bouton qui <strong>a le même effet.</strong>
<br />
Si vous ne souhaitez plus voir apparaitre le bouton dans flash il vous suffit d'éditer l'animation et de le placer hors de la scène. Dès lors seul le bouton du formulaire HTML permettra de commencer l'upload.
<div style="color:red;"><pre><?php
if (isset ($_POST) && count($_POST) > 0 ) {
echo '<strong>Formulaire envoyé !</strong><br /><br />';
print_r($_POST);
}
?></pre></div><br />
<label>Champ HTML1<br />
<input name="champs1" type="text" id="champ_html_1" value="valeur du champ 1" />
</label>
<br />
<br />
<label>Champ HTML2<br />
<input name="champ_html_2" type="text" id="champ_html_2" value="valeur du champ 2" />
</label>
<br />
<br />
<div id="mon_flash">
Pour uploader, vous devez telecharger <a href="http://www.adobe.com/go/getflashplayer_fr" onclick="window.open(this.href); return false;"><strong>le player flash</strong></a>
</div>
<script type="text/javascript">
// <![CDATA[
var so = new SWFObject("./applications/NasUploader15.swf", "nasuploader", "550", "400", "8");
so.addParam ('FlashVars','varget=dossierup%3D<?php echo $nom_du_dossier_a_creer ; ?>');
so.write("mon_flash");
// ]]>
</script>
Ici on a ajouté le nom de dossier généré en debut de page et on l'envoie à l'anim flash dans la variable dossierup qui sera transmise en GET au script serveur.
<br />
<input type="button" name="btnSubmit" value="lancer l'upload" id="btnSubmit" onclick="goUpload('&variable2=val_variable2'); return false;">
</td>
</form>
</body>
</html>