Sources Uploader en flash et php besoin d'aide !

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Sources Uploader en flash et php besoin d'aide !

par flaydeer » 26 févr. 2009, 21:16

Régler, merci

[Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur]

par flaydeer » 24 févr. 2009, 21:43

oui avec la date mais pas le post ! J'ai trouver un autre solution : Mais un autre souci !
Une page formulaire avant avec un champs et reprendre la valeur dans la page upload
$nom_du_dossier_a_creer = $_POST[ma_variable_qui_remomera_dossier];

c'est vrai que se serai ete cool dans la meme page !

Mais un autre souci !

Quand je valide le 1er formulaire, j'ai qui s'affiche :

Formulaire envoyé !

Array
(
[ma_variable_qui_remomera_dossier] => ici les données rentrer dans le precedent form
)


Je voudrai afficher seulement "les données rentrer dans le precedent form"

Puis une fois valider: Formulaire envoyé !
<?php
 if (isset ($_POST) && count($_POST) > 0 ) {
 echo '<strong>Formulaire envoyé !</strong><br /><br />';
 print_r($_POST);
 }
 ?> 

par sylvaing26 » 24 févr. 2009, 21:31

Avec la date ca marche et pas avec le post ?

par flaydeer » 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>

par flaydeer » 23 févr. 2009, 20:54

Merci,

je commence a comprendre un pt peu. :)

par sylvaing26 » 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 ...

par flaydeer » 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]

par sylvaing26 » 23 févr. 2009, 19:33

Ton code source m'aiderai :wink:

par flaydeer » 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.

par sylvaing26 » 23 févr. 2009, 10:32

D'acc :wink:

par flaydeer » 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.

par sylvaing26 » 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

par flaydeer » 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 !

par sylvaing26 » 23 févr. 2009, 00:20

Utilises tu la source de nasuploader ?

par flaydeer » 23 févr. 2009, 00:14

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

Merci quand même.