file_uploads : 1. upload_max_filesize : 128M.

Fichier :
upload.txt4 Ko

<?php

/**
 * @file index.php
 * @brief Page d'upload
 *
 * @author hughes monget
 * @see http://www.monget.com/
 */

// Paramétrages PHP
//error_reporting(E_ALL | E_NOTICE | E_STRICT);
error_reporting(0);
set_time_limit(0);
$arr_ini_set = array('log_errors' => 0, 'display_errors' => 1, 'error_log' => 0, 'html_errors' => 0, 'date.timezone' => 'Europe/Paris');
array_walk($arr_ini_set, create_function('$v, $k', 'ini_set($k, $v);'));
if (!
setlocale(LC_ALL, 'french')) { echo 'locale not set'; }
if (
get_magic_quotes_gpc())
{
    
$_REQUEST = array_map('stripslashes', $_REQUEST);
}

// Répertoire d'upload et message
$str_repertoire_upload = dirname(__FILE__).DIRECTORY_SEPARATOR;
$str_message = '';

// Liste des fichiers du répertoire.
$arr_str_liste_fichier = glob($str_repertoire_upload.'*');
$arr_str_liste_fichier = array_map('basename', $arr_str_liste_fichier);
$arr_str_liste_fichier = array_combine($arr_str_liste_fichier, $arr_str_liste_fichier);
$arr_str_fichier_masque = array(basename($_SERVER['SCRIPT_NAME']), 'web.config');
foreach(
$arr_str_fichier_masque as $str_fichier_masque)
{
    unset(
$arr_str_liste_fichier[$str_fichier_masque]);
}

// Gestion de la suppression de fichiers.
if (isset($_REQUEST['supprimer']) && is_string($_REQUEST['supprimer']) && isset($arr_str_liste_fichier[$_REQUEST['supprimer']]))
{
    if (
unlink($str_repertoire_upload.$arr_str_liste_fichier[$_REQUEST['supprimer']]))
    {
        
$str_message = 'Fichier supprimé !';
    }
    else
    {
        
$str_message = 'Erreur de suppression de fichier !';
    }
    unset(
$arr_str_liste_fichier[$_REQUEST['supprimer']]);
}

// Gestion de l'upload.
if (isset($_FILES['fichier']))
{
    
$str_nom_fichier = basename($_FILES['fichier']['name']);
    
// Liste blanches d'extension
    
$arr_str_extension = array('txt', 'zip', 'rar', 'jpg', 'gif', 'png', 'dat', 'avi', 'mp3', 'doc', 'xls', 'mdb');
    
$str_extension = strtolower(pathinfo($str_nom_fichier, PATHINFO_EXTENSION));
    if (!
in_array($str_extension, $arr_str_extension))
    {
        
$str_message = 'Extensions autorisées: '.implode(', ', $arr_str_extension);
    }
    if (!
$str_message)
    {
        
$str_nom_fichier = strtr($str_nom_fichier,
            
'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
            
'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
        
$str_nom_fichier = preg_replace('/([^.a-z0-9]+)/i', '_', $str_nom_fichier);
        if (
move_uploaded_file($_FILES['fichier']['tmp_name'], $str_repertoire_upload.$str_nom_fichier))
        {
            
$str_message = 'Upload effectué avec succès !';
            
$arr_str_liste_fichier[$str_nom_fichier] = $str_nom_fichier;
        }
        else
        {
            
$str_message = 'Echec de l\'upload !';
        }
    }
}

// Affichage du CSS;
echo
'
<style type="text/css">
<!--
table td
{
    /* font-family: monospace; */
}
-->
</style>
'
;

// Affichage des infos d'upload
$arr_str_parametre_php = array('file_uploads', 'upload_max_filesize');
if (
$arr_str_parametre_php)
{
    echo 
'<p>';
    foreach(
$arr_str_parametre_php as $str_parametre_php)
    {
        echo 
htmlspecialchars($str_parametre_php.' : '.ini_get($str_parametre_php).'. ', ENT_QUOTES);
    }
    echo 
'</p>';
}

// Affichage du formulaire d'upload
echo
'
<form method="post" action="'
,htmlspecialchars($_SERVER['SCRIPT_NAME'], ENT_QUOTES),'" enctype="multipart/form-data">
    Fichier : <input type="file" name="fichier">
    <input type="submit" name="envoyer" value="Envoyer le fichier">
</form>
'
;

// Affichage d'un message.
if ($str_message)
{
    echo 
'<p>'.htmlspecialchars($str_message, ENT_QUOTES).'</p>';
}

// Affichage de la liste des fichiers.
if ($arr_str_liste_fichier)
{
    
natcasesort($arr_str_liste_fichier);
    echo 
'<table>';
    foreach(
$arr_str_liste_fichier as $str_fichier)
    {
        echo 
"\n";
        echo 
'<tr><td><a target="_blank" href="',htmlspecialchars($str_fichier, ENT_QUOTES),'">'.htmlspecialchars($str_fichier, ENT_QUOTES).'</a></td>';
        echo 
'<td style="text-align: right">'.number_format(filesize($str_repertoire_upload.$str_fichier) / 1024.0, 0, '', ' ').' Ko</td>';
        
// Affichage du formulaire de suppression de fichier.
        
echo '<td>';
        echo 
'
<form method="post" action="'
,htmlspecialchars($_SERVER['SCRIPT_NAME'], ENT_QUOTES),'">
    <input type="hidden" name="supprimer" value="'
,htmlspecialchars($str_fichier, ENT_QUOTES),'" />
    <input type="submit" value="x" />
</form>
'
;
        echo 
'</td></tr>';
    }
    echo 
'</table>';
}

echo 
'<hr />';
highlight_file(__FILE__);