Sources Uploader en flash et php besoin d'aide !

Mammouth du PHP | 686 Messages

22 févr. 2009, 21:26

tu dois bien avoir une page de traitement de tes fichier uploadé en PHP qui traite aussi ton formulaire non ?

Eléphanteau du PHP | 21 Messages

22 févr. 2009, 21:31

Non ?

Je debut vraiment, il faut que je fasse quoi ?

1. une page html avec mon formulaire
2. une page php avec ... ?
Merci, Flaydeer.

Mammouth du PHP | 686 Messages

23 févr. 2009, 00:04

Je pense sincerement que tu as les ambitions plus grandes que tes capacités pour le moment. si tu ne connais rien de rien que ca soit niveau synthaxe ou fonctions. Commence par pl;us simple pour découvrir le PHP.
De plus j'ai téléchargé la souce de nasuploader si c'est ce que tu utilise et si tu ne connais pas le PHP du tout tu ne sauras pas le configurer ou encore l'adapter

Eléphanteau du PHP | 21 Messages

23 févr. 2009, 00:14

Merci, je comprends bien mais j'ai besoin de faire un upload.

Merci quand même.
Merci, Flaydeer.

Mammouth du PHP | 686 Messages

23 févr. 2009, 00:20

Utilises tu la source de nasuploader ?

Eléphanteau du PHP | 21 Messages

23 févr. 2009, 01:22

j'ai decider de reprendre sans sa source et creer un multi upload de base si on peut dire pour comprendre le php autrement je m'en sortirai jamains je pense !
Merci, Flaydeer.

Mammouth du PHP | 686 Messages

23 févr. 2009, 01:49

Regarde ce tuto il devrait t'interresser dans cde cas :wink:
http://www.phpfrance.com/tutoriaux/inde ... e-fichiers

Eléphanteau du PHP | 21 Messages

23 févr. 2009, 01:56

merci et je suis regarde aussi un tutu du site http://www.siteduzero.com comment débuter en php et je commence a comprendre un peu mieux. je te remercie.
Je pense que j'aurai d'autres question tres rapidement, lol.
Merci, Flaydeer.

Mammouth du PHP | 686 Messages

23 févr. 2009, 10:32

D'acc :wink:

Eléphanteau du PHP | 21 Messages

23 févr. 2009, 18:32

Bonjour,

J'ai essayer de faire un pt tour php, lol. :)

Je commence a comprendre un peux mieux, je me suis basé sur Upload de fichiers (par HTTP) que tu m'as donner comme tuto.

1. sa a l'air de bien fonctionner, mais quand je veux faire un multi upload, un seul champs m'envoi le fichier, les autres sont inactifs ? je suis passé à coté de quelque chose mais je ne trouve pas la solution.
Merci, Flaydeer.

Mammouth du PHP | 686 Messages

23 févr. 2009, 19:33

Ton code source m'aiderai :wink:

Eléphanteau du PHP | 21 Messages

23 févr. 2009, 19:46

Pour le formulaire:
<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&eacute;lectionner un fichier &agrave; 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&eacute;lectionner un fichier &agrave; uploader:
<input type="file" name="aFile2" id="aFile2" />
</p>
<p>
<input type="submit" name="submitFile" value="Envoyer le fichier" />
</p>
</form>
Pour 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&eacute;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&eacute;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&eacute; correctement.';
} else { // error sur move_uploaded_file
echo 'Le fichier n\'a pas &eacute;t&eacute; upload&eacute; 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&eacute; d&eacute;passe la valeur sp&eacute;cifi&eacute;e
pour upload_max_filesize dans php.ini.';
break;
case UPLOAD_ERR_FORM_SIZE:
echo 'Le fichier upload&eacute; d&eacute;passe la valeur sp&eacute;cifi&eacute;e
pour MAX_FILE_SIZE dans le formulaire d\'upload.';
break;
case UPLOAD_ERR_PARTIAL:
echo 'Le fichier n\'a &eacute;t&eacute que partiellement upload&eacute;.';
break;
default:
echo 'Aucun fichier n\'a &eacute;t&eacute upload&eacute;.';
} // switch
}
} else { // aucun fichier reçu
echo 'Pas de fichier recu';
}
} // fin de réception de formulaire
?>
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 ??
je ne vois pas comment faire!

Je suis nul, :)

Merci de pour ton aide. :?

[/quote]
Merci, Flaydeer.

Mammouth du PHP | 686 Messages

23 févr. 2009, 20:42

Oui c'est bien ca
/* TRAITEMENT PRINCIPAL 
*/ 

// vérifie l'existence du répertoire de destination 
if (!is_dir($destination_dir)) { 
echo 'Veuillez indiquer un r&eacute;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&eacute;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&eacute; correctement.'; 
} else { // error sur move_uploaded_file 
echo 'Le fichier n\'a pas &eacute;t&eacute; upload&eacute; 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&eacute; d&eacute;passe la valeur sp&eacute;cifi&eacute;e 
pour upload_max_filesize dans php.ini.'; 
break; 
case UPLOAD_ERR_FORM_SIZE: 
echo 'Le fichier upload&eacute; d&eacute;passe la valeur sp&eacute;cifi&eacute;e 
pour MAX_FILE_SIZE dans le formulaire d\'upload.'; 
break; 
case UPLOAD_ERR_PARTIAL: 
echo 'Le fichier n\'a &eacute;t&eacute que partiellement upload&eacute;.'; 
break; 
default: 
echo 'Aucun fichier n\'a &eacute;t&eacute upload&eacute;.'; 
} // switch 
switch ($_FILES['aFile2']['error']){ 
case UPLOAD_ERR_INI_SIZE: 
echo 'Le fichier upload&eacute; 2 d&eacute;passe la valeur sp&eacute;cifi&eacute;e 
pour upload_max_filesize dans php.ini.'; 
break; 
case UPLOAD_ERR_FORM_SIZE: 
echo 'Le fichier upload&eacute; 2 d&eacute;passe la valeur sp&eacute;cifi&eacute;e 
pour MAX_FILE_SIZE dans le formulaire d\'upload.'; 
break; 
case UPLOAD_ERR_PARTIAL: 
echo 'Le fichier 2 n\'a &eacute;t&eacute que partiellement upload&eacute;.'; 
break; 
default: 
echo 'Aucun fichier 2 n\'a &eacute;t&eacute upload&eacute;.'; 
} // 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 ...

Eléphanteau du PHP | 21 Messages

23 févr. 2009, 20:54

Merci,

je commence a comprendre un pt peu. :)
Merci, Flaydeer.

Eléphanteau du PHP | 21 Messages

24 févr. 2009, 21:22

Bonjour,

Je résolu presque tous sauf un !

Je suis revenu sur les source de Nas et mon souci c'est de récuperer la variable du champs formulaire pour que dossier soi renomer avec ce champs, je ne sais pas si je me suis bien expliqué ?

$nom_du_dossier_a_creer = 'CDAB'.date('Ymdhis'); avec cette solution mon dossier est renomer avec la date

Avec cette solution je pensai recuperer les données inserer dans le "champs1" mais non ???
$nom_du_dossier_a_creer = $_POST['champs1'];

Il faut bien dire que Nas ma bcp aider la dessus, voir maché, lol.

Merci de votre aide.
<?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&eacute; 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&eacute;. <br />
<form id="form_upload" name="form_upload" method="post" action="">
 <strong>Formulaire </strong><br />
 Ici
 le bouton envoyer est toujours pr&eacute;sent dans l'animation Flash mais le <strong>formulaire HTML</strong> est lui aussi muni d'un bouton qui <strong>a le m&ecirc;me effet.</strong>
 <br />
 Si vous ne souhaitez plus voir apparaitre le bouton dans flash il vous suffit d'&eacute;diter l'animation et de le placer hors de la sc&egrave;ne. D&egrave;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>
Merci, Flaydeer.