par
dunbar » 25 nov. 2006, 21:00
Salut,
Je dois être aveugle parce que je n'y arrive pas.
Je récupére bien le chemin mais pour le nom rien à faire ?
Et voilà mon code après les modification que tu me conseil mais cela m'affiche toujours Array.
<?php
//===============================================================================
//
// UPLOADE
//
//===============================================================================
$maxfiles = 1; //Modification du nombre de Photo.
$maxsize = 2000000; //Poid des Photos
$finaldir = 'E:/wamp/www/xxxxxx/clients/images/'; //Chemin du repertoire
$nom = array(1, 2, 3, 4);
//===============================================================================
// TRAITEMENT DU FORMULAIRE
//===============================================================================
if(isset($_POST['valider'])){
//===============================================================================
//
// ENREGISTREMENT DU CHEMIN ET NOM DANS LA TABLE IMAGE
//
//===============================================================================
include "../connect/connect.php";
//echo $sql = "INSERT INTO images (chem_pho_1, pho_1) values ('".$finaldir."','".$name."')";
//$insert = mysql_query($sql) or die (mysql_error());
echo $sql = "INSERT INTO images (chem_pho_1, pho_1) values ('".$finaldir."','".$nom."')";
$insert = mysql_query($sql) or die (mysql_error());
?>
<pre>
<?php
var_dump($_FILES);
?>
</pre>
<?php
//=============================================================================
// TEST DU NOMBRE DE FICHIERS POSTES
//=============================================================================
$nbr=0;
for($x=0;$x<$maxfiles;$x++)
if(!empty($_FILES['userfile']['name'][$x])) $nbr++;
if($nbr<=0) die("Aucun fichier spécifié !<br/>");
//=============================================================================
// CREATION DE L'ARBORESCENCE POUR LE DOSSIER DESTINATION
//=============================================================================
if(!empty($finaldir)) {
if(substr($finaldir,strlen($finaldir)-1,1)=='/') $finaldir.='/';
$dir=explode('/',$finaldir);
$finaldir='';
for($x=0;$x<count($dir);$x++) {
$finaldir.=$dir[$x].'/';
if(!@is_dir($finaldir)) @mkdir($finaldir,0777);
}
if(!@is_dir($finaldir)) die("Le dossier $finaldir est invalide !<br/>");
}
//=============================================================================
// TELECHARGEMENT DES FICHIERS
//=============================================================================
foreach($_FILES as $Key => $Value) {
for($x=1;$x<=$maxfiles;$x++) {
$errorhttp=$_FILES['userfile']['error'][$x-1];
$filenamehttp=$_FILES['userfile']['name'][$x-1];
$typehttp=$_FILES['userfile']['type'][$x-1];
$sizehttp=$_FILES['userfile']['size'][$x-1];
$tmpfilehttp=$_FILES['userfile']['tmp_name'][$x-1];
if (($errorhttp)and(!empty($filenamehttp))) {
switch ($errorhttp){
case 1: echo "Erreur : Le fichier n°$x est trop grand !<br/>";break;
case 2: echo "Erreur : Le fichier n°$x est trop grand !<br/>";break;
case 3: echo "Erreur : Transfert du fichier n°$x interrompu !<br/>";break;
case 4: echo "Erreur : Le fichier n°$x est vide !<br/>";break;
}
} else {
if((!empty($filenamehttp))and($sizehttp>0)) {
if($sizehttp<=$maxsize){
if(@is_uploaded_file($tmpfilehttp)) {
if(@eregi('.php',$filenamehttp)) $filenamehttp.='.txt';
if(@eregi('.exe',$filenamehttp)) $filenamehttp.='.txt';
if(@eregi('.swf',$filenamehttp)) $filenamehttp.='.txt';
if(@eregi('.zip',$filenamehttp)) $filenamehttp.='.txt';
if(filesize($tmpfilehttp)==$sizehttp) {
if(@move_uploaded_file($tmpfilehttp,$finaldir.$filenamehttp)) {
@chmod($filenamehttp,0777);
echo "Fichier n°$x uploadé : ".basename($filenamehttp).
" (".round(max($sizehttp,1024)/1024)." ko)<br/>";
} else echo "Erreur de téléchargement du fichier n°$x !<br/>";
} else echo "Erreur de téléchargement du fichier n°$x !<br/>";
} else echo "Erreur de téléchargement du fichier n°$x !<br/>";
} else echo "Erreur : Le fichier n°$x est trop grand !<br/>";
} // else echo "Le fichier n°$x est introuvable ou vide !<br/>";
}
}
}
die ("Opération terminée.<br/>");
}
//===============================================================================
// FORMULAIRE HTML
//===============================================================================
echo '<form method="post" enctype="multipart/form-data"'.
' onSubmit="document.getElementById(\'valider\').style.visibility=\'hidden\';">'.
'<input type="hidden" name="MAX_FILE_SIZE" value="'.$maxsize.'"/>';
for($x=1;$x<=max($maxfiles,1);$x++)
echo ' Fichier n°'.$x.' : <input type="file" name="userfile[]" size="20"/><br/>';
echo '<br/><input type="submit" name="valider" value="Envoyer..."/>'.
'</form>';
//===============================================================================
?>
Et mon Var_Dump
Code : Tout sélectionner
array(1) {
["userfile"]=>
array(5) {
["name"]=>
array(1) {
[0]=>
string(5) "6.gif"
}
["type"]=>
array(1) {
[0]=>
string(9) "image/gif"
}
["tmp_name"]=>
array(1) {
[0]=>
string(21) "E:/wamp/tmp\phpCD.tmp"
}
["error"]=>
array(1) {
[0]=>
int(0)
}
["size"]=>
array(1) {
[0]=>
int(2415)
}
}
}
Quelqu'un remarque mon erreur ?
D'avance merci
Salut,
Je dois être aveugle parce que je n'y arrive pas.
Je récupére bien le chemin mais pour le nom rien à faire ?
Et voilà mon code après les modification que tu me conseil mais cela m'affiche toujours Array.
[php]<?php
//===============================================================================
//
// UPLOADE
//
//===============================================================================
$maxfiles = 1; //Modification du nombre de Photo.
$maxsize = 2000000; //Poid des Photos
$finaldir = 'E:/wamp/www/xxxxxx/clients/images/'; //Chemin du repertoire
$nom = array(1, 2, 3, 4);
//===============================================================================
// TRAITEMENT DU FORMULAIRE
//===============================================================================
if(isset($_POST['valider'])){
//===============================================================================
//
// ENREGISTREMENT DU CHEMIN ET NOM DANS LA TABLE IMAGE
//
//===============================================================================
include "../connect/connect.php";
//echo $sql = "INSERT INTO images (chem_pho_1, pho_1) values ('".$finaldir."','".$name."')";
//$insert = mysql_query($sql) or die (mysql_error());
echo $sql = "INSERT INTO images (chem_pho_1, pho_1) values ('".$finaldir."','".$nom."')";
$insert = mysql_query($sql) or die (mysql_error());
?>
<pre>
<?php
var_dump($_FILES);
?>
</pre>
<?php
//=============================================================================
// TEST DU NOMBRE DE FICHIERS POSTES
//=============================================================================
$nbr=0;
for($x=0;$x<$maxfiles;$x++)
if(!empty($_FILES['userfile']['name'][$x])) $nbr++;
if($nbr<=0) die("Aucun fichier spécifié !<br/>");
//=============================================================================
// CREATION DE L'ARBORESCENCE POUR LE DOSSIER DESTINATION
//=============================================================================
if(!empty($finaldir)) {
if(substr($finaldir,strlen($finaldir)-1,1)=='/') $finaldir.='/';
$dir=explode('/',$finaldir);
$finaldir='';
for($x=0;$x<count($dir);$x++) {
$finaldir.=$dir[$x].'/';
if(!@is_dir($finaldir)) @mkdir($finaldir,0777);
}
if(!@is_dir($finaldir)) die("Le dossier $finaldir est invalide !<br/>");
}
//=============================================================================
// TELECHARGEMENT DES FICHIERS
//=============================================================================
foreach($_FILES as $Key => $Value) {
for($x=1;$x<=$maxfiles;$x++) {
$errorhttp=$_FILES['userfile']['error'][$x-1];
$filenamehttp=$_FILES['userfile']['name'][$x-1];
$typehttp=$_FILES['userfile']['type'][$x-1];
$sizehttp=$_FILES['userfile']['size'][$x-1];
$tmpfilehttp=$_FILES['userfile']['tmp_name'][$x-1];
if (($errorhttp)and(!empty($filenamehttp))) {
switch ($errorhttp){
case 1: echo "Erreur : Le fichier n°$x est trop grand !<br/>";break;
case 2: echo "Erreur : Le fichier n°$x est trop grand !<br/>";break;
case 3: echo "Erreur : Transfert du fichier n°$x interrompu !<br/>";break;
case 4: echo "Erreur : Le fichier n°$x est vide !<br/>";break;
}
} else {
if((!empty($filenamehttp))and($sizehttp>0)) {
if($sizehttp<=$maxsize){
if(@is_uploaded_file($tmpfilehttp)) {
if(@eregi('.php',$filenamehttp)) $filenamehttp.='.txt';
if(@eregi('.exe',$filenamehttp)) $filenamehttp.='.txt';
if(@eregi('.swf',$filenamehttp)) $filenamehttp.='.txt';
if(@eregi('.zip',$filenamehttp)) $filenamehttp.='.txt';
if(filesize($tmpfilehttp)==$sizehttp) {
if(@move_uploaded_file($tmpfilehttp,$finaldir.$filenamehttp)) {
@chmod($filenamehttp,0777);
echo "Fichier n°$x uploadé : ".basename($filenamehttp).
" (".round(max($sizehttp,1024)/1024)." ko)<br/>";
} else echo "Erreur de téléchargement du fichier n°$x !<br/>";
} else echo "Erreur de téléchargement du fichier n°$x !<br/>";
} else echo "Erreur de téléchargement du fichier n°$x !<br/>";
} else echo "Erreur : Le fichier n°$x est trop grand !<br/>";
} // else echo "Le fichier n°$x est introuvable ou vide !<br/>";
}
}
}
die ("Opération terminée.<br/>");
}
//===============================================================================
// FORMULAIRE HTML
//===============================================================================
echo '<form method="post" enctype="multipart/form-data"'.
' onSubmit="document.getElementById(\'valider\').style.visibility=\'hidden\';">'.
'<input type="hidden" name="MAX_FILE_SIZE" value="'.$maxsize.'"/>';
for($x=1;$x<=max($maxfiles,1);$x++)
echo ' Fichier n°'.$x.' : <input type="file" name="userfile[]" size="20"/><br/>';
echo '<br/><input type="submit" name="valider" value="Envoyer..."/>'.
'</form>';
//===============================================================================
?>[/php]
Et mon Var_Dump
[code]array(1) {
["userfile"]=>
array(5) {
["name"]=>
array(1) {
[0]=>
string(5) "6.gif"
}
["type"]=>
array(1) {
[0]=>
string(9) "image/gif"
}
["tmp_name"]=>
array(1) {
[0]=>
string(21) "E:/wamp/tmp\phpCD.tmp"
}
["error"]=>
array(1) {
[0]=>
int(0)
}
["size"]=>
array(1) {
[0]=>
int(2415)
}
}
}
[/code]
Quelqu'un remarque mon erreur ?
D'avance merci