Problème téléchargement avec $_FILES
dampayet
Messages postés
7
Date d'inscription
Statut
Membre
Dernière intervention
-
dampayet Messages postés 7 Date d'inscription Statut Membre Dernière intervention -
dampayet Messages postés 7 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
j'ai créé un hébergeur sur mon site et j'ai des problèmes concernant un script, celui du téléchargement des fichiers présent dans le serveur ftp. Les membres se connectant sur leur compte sélectionne les fichiers pour effectuer des modifications sur ces derniers. Quand je clique sur l'icône de téléchargement, le(s) fichier(s) ne se télécharge pas.
Erreur :
Notice: Undefined index: file
Warning: Invalid argument supplied for foreach()
J'ai fait plusieurs recherche, effectué plusieurs modifications... mais sans succès.
Merci de votre aide
j'ai créé un hébergeur sur mon site et j'ai des problèmes concernant un script, celui du téléchargement des fichiers présent dans le serveur ftp. Les membres se connectant sur leur compte sélectionne les fichiers pour effectuer des modifications sur ces derniers. Quand je clique sur l'icône de téléchargement, le(s) fichier(s) ne se télécharge pas.
Erreur :
Notice: Undefined index: file
Warning: Invalid argument supplied for foreach()
J'ai fait plusieurs recherche, effectué plusieurs modifications... mais sans succès.
Merci de votre aide
A voir également:
- Problème téléchargement avec $_FILES
- Telechargement direct - Accueil - Outils
- Dark world telechargement - Guide
- Téléchargement - Télécharger - Compression & Décompression
- Telechargement - Télécharger - Traitement de texte
- Adobe Reader - Télécharger - PDF
1 réponse
Voici le script :
<?
@session_start(); // demarre une session si ce n'est déja fait
$hack_module['GestFiles']=true; // signifie que le module existe et a été inclus correctement
$gf_version='1.08';
$gf_isauth=gf_isauthentify(); // mode authentifiée ou non
$gf_checked_all='';
function gf_getIcon($path_prefix,$icon_name) {
global $CONFIG;
// Recherche d'abord dans le dossier icone puis dans le dossier du module
$icon_path=$path_prefix.$CONFIG['ICO_FOLDER'].'/'.$icon_name.'.png';
if (file_exists($icon_path)) return($icon_path);
$icon_path=$path_prefix.$CONFIG['ICO_FOLDER'].'/'.$icon_name.'.gif';
if (file_exists($icon_path)) return($icon_path);
$icon_path=$path_prefix.'modules/gestfiles/icones/'.$icon_name.'.png';
if (file_exists($icon_path)) return($icon_path);
$icon_path=$path_prefix.'modules/gestfiles/icones/'.$icon_name.'.gif';
if (file_exists($icon_path)) return($icon_path);
$icon_path=$path_prefix.'modules/gestfiles/icones/'.$icon_name.'.gif';
return($icon_path); // icône de telechargement
}
/**
* Ajoute un colonne pour les cases a cocher dans la tableau
* @return none
*/
function gf_print_header() {
echo "<td style=width:17px> </td>";
}
function gf_print_checkbox($file_path) {
global $gf_checked_all;
//echo "<td style='width:17px'>";
if ( is_file($file_path) or is_dir($file_path) ) {
return "<input type=checkbox name=selected_files[] value=\"$file_path\" $gf_checked_all>";
} else return " ";
//echo "</td>";
}
function gf_print_checkbox_tn($file_path) {
global $gf_checked_all;
if ( is_file($file_path) or is_dir($file_path) ) {
echo "<input type=checkbox name=selected_files[] value=\"$file_path\" $gf_checked_all>";
}
}
function gf_print_footer($path_prefix='./') {
global $gf_checked_all;
$icon_space=str_repeat(" ",5);
echo '<table class=gestfile border=0 cellspacing=0 cellpadding=1 width=100%><TR valign=center>';
echo "<TD>";
if (empty($gf_checked_all)) {
echo "<input type=checkbox name='action' onClick='javascript:document.gestfiles.submit()' value='Cocher'>";
} else {
echo "<input type=checkbox name='action' onClick='javascript:document.gestfiles.submit()' value='Décocher' checked>";
}
echo "</TD><TD width=20%>Appliquer à la selection :</TD><TD align=left width=40%>
$icon_space<input style='background-color:white' type=image src='".gf_getIcon($path_prefix,'delete')."' name='Delete' value='Delete' alt='Effacer' title='Effacer' align='middle'>
$icon_space<input style='background-color:white' type=image src='".gf_getIcon($path_prefix,'zip')."' name='Zip' value='Zip' alt='Compresser-Décompresser' title='Compresser-Décompresser' align='middle'>
$icon_space<input style='background-color:white' type=image src='".gf_getIcon($path_prefix,'copy')."' name='Copy' value='Copy' alt='Copier' title='Copier' align='middle'>
$icon_space<input style='background-color:white' type=image src='".gf_getIcon($path_prefix,'cut')."' name='Cut' value='Cut' alt='Couper' title='Couper' align='middle'>
$icon_space<input style='background-color:white' type=image src='".gf_getIcon($path_prefix,'download')."' name='Download' value='Download' alt='telecharger' title='telecharger' align='middle'>";
if (isset($_SESSION['Memo_selected_files']) and isset($_SESSION['Memo_action'])) {
echo "$icon_space<input style='background-color:white' type=image src='".gf_getIcon($path_prefix,'paste')."' name='Paste' value='Paste' alt='Coller' title='Coller' align='middle'>";
echo "<small> ".count($_SESSION['Memo_selected_files']) ." fichier(s) </small>";
}
echo "</TD>";
echo "<TD align=right><input type='text' name=NewName size=20 maxlength=20 align='middle' title='Nom du dossier à créer, du fichier à renommer ou du fichier zip'> </TD>";
echo "<TD align=left>";
echo "<input style='background-color:white' type=image src='".gf_getIcon($path_prefix,'newfolder')."' name='CreateNewFolder' value='CreateNewFolder' alt='Créer dossier' title='Créer dossier' align='middle'>";
echo " / ";
echo "<input style='background-color:white' type=image src='".gf_getIcon($path_prefix,'ren')."' name='Rename' value='Rename' alt='Renommer' title='Renommer' align='middle'>";
echo "</TD></TR></table></form>";
}
function gf_isauthentify() {
global $CONFIG;
$module_path=str_replace('\\','/',dirname(__FILE__)).'/../';
include_once($module_path.'auth/func.inc.php');
if (CheckAuth($module_path.'/auth/auth.inc.php')===1) return(true);
return(false);
}
function gf_cleanStr($str) {
$str=trim($str);
$str=ereg_replace('[ \']','_',$str); // espace et ' => _
$str=ereg_replace('\.+','.',$str); // un seul . de suite
$str=ereg_replace('[àâäãáåÀÁÂÃÄÅæÆ]','a',$str);
$str=ereg_replace('[çÇ]','c',$str);
$str=ereg_replace('[éèêëÉÈÊËE]','e',$str);
$str=ereg_replace('[îïìíÌÍÎÏ]','i',$str);
$str=ereg_replace('[ôöðòóÒÓÔÕÖ]','o',$str);
$str=ereg_replace('[ùúûüÙÚÛÜ]','u',$str);
$str=ereg_replace('[ýÿÝŸ]','y',$str);
return ereg_replace("[^[:alnum:]._]","",$str); // vire les autres caractères non alphanum . ou _
}
function gf_do_action($current_path) {
global $CONFIG;
global $gf_checked_all;
global $gf_isauth;
if (!isset($gf_isauth) or !$gf_isauth) return;
if (!isset($current_path) or empty($current_path)) return;
if (!isset($gf_checked_all)) $gf_checked_all='';
echo "<form name=gestfiles method=post>";
//
// Détermine si une action a eu lieu et si oui laquel (Delete/Copy/Cut/Paste/Download ...)
$action=null;
// Cas des post par input type=image
foreach ($_POST as $key=>$value) {
$tmp_action=substr($key,0,-2);
if ( ('_x'==substr($key,-2)) and isset($_POST[$tmp_action . '_y']) ) {
$action=$tmp_action;
break;
}
}
if (null==$action and isset($_POST['action'])) $action=$_POST['action'];
// Le tableau des fichiers sélectionnées est passée dans $_POST[selected_files]
$selected_files=array();
if (isset($_POST['selected_files'])) $selected_files=$_POST['selected_files'];
// Le Nom d'un nouveau dossier ou d'un fichier est passé dans $_POST['NewName']
$NewName='';
if (isset($_POST['NewName'])) {
$NewName=gf_cleanStr($_POST['NewName']);
if(!empty($NewName)) {
if ($action!='Zip') {
if (count($selected_files)>0) $action='Rename'; // Sécurité dans le cas de l'appuie sur enter
else $action='Créer dossier'; // Sécurité dans le cas de l'appuie sur enter
}
}
}
$raz_memo=false;
switch ($action) {
case 'Delete':
// Effacement des fichiers sélectionnées
foreach ($selected_files as $filename) {
$filename=trim($filename); // Par précaution
$local_name=str_replace($CONFIG['DOCUMENT_ROOT'],'',$filename);
if (is_file($filename)) {
if (!@unlink($filename))
echo "<B><font color=red>ERREUR de suppression du fichier $local_name</font></B><BR>";
} elseif (is_dir($filename)) {
if (is_file($filename.DIRECTORY_SEPARATOR.'.dirinfo'))
@unlink($filename.DIRECTORY_SEPARATOR.'.dirinfo');
if (!rmdir($filename))
echo "<B><font color=red>ERREUR de suppression du repertoire $local_name</font></B><BR>";
}
}
$raz_memo=true;
break;
case 'Copy':
case 'Cut':
// Mémorisation des fichiers sélectionnées dans la session et de l'action
$_SESSION['Memo_selected_files']=$selected_files;
$_SESSION['Memo_action']=$action;
$raz_memo=false;
break;
case 'Paste':
if (isset($_SESSION['Memo_selected_files']) and
isset($_SESSION['Memo_action'])) {
foreach ($_SESSION['Memo_selected_files'] as $filename) {
$filename=trim($filename); // Par précaution
$local_name=str_replace($CONFIG['DOCUMENT_ROOT'],'',$filename);
if (is_file($filename)) {
$new_filename=trim($current_path.basename($filename));
$new_local_name=str_replace($CONFIG['DOCUMENT_ROOT'],'',$new_filename);
switch ($_SESSION['Memo_action']) {
case 'Copy':
if (!gf_secure_copy($filename,$new_filename)) echo "<B><font color=red>ERREUR de copie de $local_name => $new_local_name</font></B><BR>";
break;
case 'Cut':
if (!gf_secure_rename($filename,$new_filename)) echo "<B><font color=red>ERREUR de déplacement de $local_name => $new_local_name</font></B><BR>";
break;
}
} else echo "<B><font color=red>IMPOSSIBLE de couper/copier/coller un répertoire ($local_name)</font></B><BR>";
}
}
$raz_memo=true;
break;
// Début du problème....
case 'Download': //telechargemet du, des fichiers selectionnes
if (null==$action and isset($_POST['action'])) $action=$_POST['action'];
// Le tableau des fichiers sélectionnées est passée dans $_POST[selected_files]
$selected_files=array();
if (isset($_POST['selected_files'])) $selected_files=$_POST['selected_files'];
foreach($_FILES['file'] as $filename)
{
}
break;
// Fin duproblème
...
<?
@session_start(); // demarre une session si ce n'est déja fait
$hack_module['GestFiles']=true; // signifie que le module existe et a été inclus correctement
$gf_version='1.08';
$gf_isauth=gf_isauthentify(); // mode authentifiée ou non
$gf_checked_all='';
function gf_getIcon($path_prefix,$icon_name) {
global $CONFIG;
// Recherche d'abord dans le dossier icone puis dans le dossier du module
$icon_path=$path_prefix.$CONFIG['ICO_FOLDER'].'/'.$icon_name.'.png';
if (file_exists($icon_path)) return($icon_path);
$icon_path=$path_prefix.$CONFIG['ICO_FOLDER'].'/'.$icon_name.'.gif';
if (file_exists($icon_path)) return($icon_path);
$icon_path=$path_prefix.'modules/gestfiles/icones/'.$icon_name.'.png';
if (file_exists($icon_path)) return($icon_path);
$icon_path=$path_prefix.'modules/gestfiles/icones/'.$icon_name.'.gif';
if (file_exists($icon_path)) return($icon_path);
$icon_path=$path_prefix.'modules/gestfiles/icones/'.$icon_name.'.gif';
return($icon_path); // icône de telechargement
}
/**
* Ajoute un colonne pour les cases a cocher dans la tableau
* @return none
*/
function gf_print_header() {
echo "<td style=width:17px> </td>";
}
function gf_print_checkbox($file_path) {
global $gf_checked_all;
//echo "<td style='width:17px'>";
if ( is_file($file_path) or is_dir($file_path) ) {
return "<input type=checkbox name=selected_files[] value=\"$file_path\" $gf_checked_all>";
} else return " ";
//echo "</td>";
}
function gf_print_checkbox_tn($file_path) {
global $gf_checked_all;
if ( is_file($file_path) or is_dir($file_path) ) {
echo "<input type=checkbox name=selected_files[] value=\"$file_path\" $gf_checked_all>";
}
}
function gf_print_footer($path_prefix='./') {
global $gf_checked_all;
$icon_space=str_repeat(" ",5);
echo '<table class=gestfile border=0 cellspacing=0 cellpadding=1 width=100%><TR valign=center>';
echo "<TD>";
if (empty($gf_checked_all)) {
echo "<input type=checkbox name='action' onClick='javascript:document.gestfiles.submit()' value='Cocher'>";
} else {
echo "<input type=checkbox name='action' onClick='javascript:document.gestfiles.submit()' value='Décocher' checked>";
}
echo "</TD><TD width=20%>Appliquer à la selection :</TD><TD align=left width=40%>
$icon_space<input style='background-color:white' type=image src='".gf_getIcon($path_prefix,'delete')."' name='Delete' value='Delete' alt='Effacer' title='Effacer' align='middle'>
$icon_space<input style='background-color:white' type=image src='".gf_getIcon($path_prefix,'zip')."' name='Zip' value='Zip' alt='Compresser-Décompresser' title='Compresser-Décompresser' align='middle'>
$icon_space<input style='background-color:white' type=image src='".gf_getIcon($path_prefix,'copy')."' name='Copy' value='Copy' alt='Copier' title='Copier' align='middle'>
$icon_space<input style='background-color:white' type=image src='".gf_getIcon($path_prefix,'cut')."' name='Cut' value='Cut' alt='Couper' title='Couper' align='middle'>
$icon_space<input style='background-color:white' type=image src='".gf_getIcon($path_prefix,'download')."' name='Download' value='Download' alt='telecharger' title='telecharger' align='middle'>";
if (isset($_SESSION['Memo_selected_files']) and isset($_SESSION['Memo_action'])) {
echo "$icon_space<input style='background-color:white' type=image src='".gf_getIcon($path_prefix,'paste')."' name='Paste' value='Paste' alt='Coller' title='Coller' align='middle'>";
echo "<small> ".count($_SESSION['Memo_selected_files']) ." fichier(s) </small>";
}
echo "</TD>";
echo "<TD align=right><input type='text' name=NewName size=20 maxlength=20 align='middle' title='Nom du dossier à créer, du fichier à renommer ou du fichier zip'> </TD>";
echo "<TD align=left>";
echo "<input style='background-color:white' type=image src='".gf_getIcon($path_prefix,'newfolder')."' name='CreateNewFolder' value='CreateNewFolder' alt='Créer dossier' title='Créer dossier' align='middle'>";
echo " / ";
echo "<input style='background-color:white' type=image src='".gf_getIcon($path_prefix,'ren')."' name='Rename' value='Rename' alt='Renommer' title='Renommer' align='middle'>";
echo "</TD></TR></table></form>";
}
function gf_isauthentify() {
global $CONFIG;
$module_path=str_replace('\\','/',dirname(__FILE__)).'/../';
include_once($module_path.'auth/func.inc.php');
if (CheckAuth($module_path.'/auth/auth.inc.php')===1) return(true);
return(false);
}
function gf_cleanStr($str) {
$str=trim($str);
$str=ereg_replace('[ \']','_',$str); // espace et ' => _
$str=ereg_replace('\.+','.',$str); // un seul . de suite
$str=ereg_replace('[àâäãáåÀÁÂÃÄÅæÆ]','a',$str);
$str=ereg_replace('[çÇ]','c',$str);
$str=ereg_replace('[éèêëÉÈÊËE]','e',$str);
$str=ereg_replace('[îïìíÌÍÎÏ]','i',$str);
$str=ereg_replace('[ôöðòóÒÓÔÕÖ]','o',$str);
$str=ereg_replace('[ùúûüÙÚÛÜ]','u',$str);
$str=ereg_replace('[ýÿÝŸ]','y',$str);
return ereg_replace("[^[:alnum:]._]","",$str); // vire les autres caractères non alphanum . ou _
}
function gf_do_action($current_path) {
global $CONFIG;
global $gf_checked_all;
global $gf_isauth;
if (!isset($gf_isauth) or !$gf_isauth) return;
if (!isset($current_path) or empty($current_path)) return;
if (!isset($gf_checked_all)) $gf_checked_all='';
echo "<form name=gestfiles method=post>";
//
// Détermine si une action a eu lieu et si oui laquel (Delete/Copy/Cut/Paste/Download ...)
$action=null;
// Cas des post par input type=image
foreach ($_POST as $key=>$value) {
$tmp_action=substr($key,0,-2);
if ( ('_x'==substr($key,-2)) and isset($_POST[$tmp_action . '_y']) ) {
$action=$tmp_action;
break;
}
}
if (null==$action and isset($_POST['action'])) $action=$_POST['action'];
// Le tableau des fichiers sélectionnées est passée dans $_POST[selected_files]
$selected_files=array();
if (isset($_POST['selected_files'])) $selected_files=$_POST['selected_files'];
// Le Nom d'un nouveau dossier ou d'un fichier est passé dans $_POST['NewName']
$NewName='';
if (isset($_POST['NewName'])) {
$NewName=gf_cleanStr($_POST['NewName']);
if(!empty($NewName)) {
if ($action!='Zip') {
if (count($selected_files)>0) $action='Rename'; // Sécurité dans le cas de l'appuie sur enter
else $action='Créer dossier'; // Sécurité dans le cas de l'appuie sur enter
}
}
}
$raz_memo=false;
switch ($action) {
case 'Delete':
// Effacement des fichiers sélectionnées
foreach ($selected_files as $filename) {
$filename=trim($filename); // Par précaution
$local_name=str_replace($CONFIG['DOCUMENT_ROOT'],'',$filename);
if (is_file($filename)) {
if (!@unlink($filename))
echo "<B><font color=red>ERREUR de suppression du fichier $local_name</font></B><BR>";
} elseif (is_dir($filename)) {
if (is_file($filename.DIRECTORY_SEPARATOR.'.dirinfo'))
@unlink($filename.DIRECTORY_SEPARATOR.'.dirinfo');
if (!rmdir($filename))
echo "<B><font color=red>ERREUR de suppression du repertoire $local_name</font></B><BR>";
}
}
$raz_memo=true;
break;
case 'Copy':
case 'Cut':
// Mémorisation des fichiers sélectionnées dans la session et de l'action
$_SESSION['Memo_selected_files']=$selected_files;
$_SESSION['Memo_action']=$action;
$raz_memo=false;
break;
case 'Paste':
if (isset($_SESSION['Memo_selected_files']) and
isset($_SESSION['Memo_action'])) {
foreach ($_SESSION['Memo_selected_files'] as $filename) {
$filename=trim($filename); // Par précaution
$local_name=str_replace($CONFIG['DOCUMENT_ROOT'],'',$filename);
if (is_file($filename)) {
$new_filename=trim($current_path.basename($filename));
$new_local_name=str_replace($CONFIG['DOCUMENT_ROOT'],'',$new_filename);
switch ($_SESSION['Memo_action']) {
case 'Copy':
if (!gf_secure_copy($filename,$new_filename)) echo "<B><font color=red>ERREUR de copie de $local_name => $new_local_name</font></B><BR>";
break;
case 'Cut':
if (!gf_secure_rename($filename,$new_filename)) echo "<B><font color=red>ERREUR de déplacement de $local_name => $new_local_name</font></B><BR>";
break;
}
} else echo "<B><font color=red>IMPOSSIBLE de couper/copier/coller un répertoire ($local_name)</font></B><BR>";
}
}
$raz_memo=true;
break;
// Début du problème....
case 'Download': //telechargemet du, des fichiers selectionnes
if (null==$action and isset($_POST['action'])) $action=$_POST['action'];
// Le tableau des fichiers sélectionnées est passée dans $_POST[selected_files]
$selected_files=array();
if (isset($_POST['selected_files'])) $selected_files=$_POST['selected_files'];
foreach($_FILES['file'] as $filename)
{
}
break;
// Fin duproblème
...