首页 > 解决方案 > 一些文件使用 POST 方法破坏表单

问题描述

我写在这里是因为我的表格有问题。我的表单有 3 个字段和 1 个上传字段。

我想上传一些文件,打破表格,POST 中没有发送任何数据。我尝试使用“var_dump”读取 $_POST,但他是空的!为什么 ?我的文件是 MP3 和 WAV。Somes 文件正在工作,而 somes 文件破坏了所有数据......

    if(isset($_POST['title']) && isset($_POST['desc']) && isset($_POST['emission'])) {

    $p_title = htmlspecialchars($_POST['title']);
    $p_desc = htmlspecialchars($_POST['desc']);
    $p_emission = intval($_POST['emission']);

    if(strlen($p_title) >= 1 && $p_emission >= 1) {

        // Constantes
        define('TARGET', './mp3/');    // Repertoire cible
        define('MAX_SIZE', 100000);    // Taille max en octets du fichier

        // Tableaux de donnees
        $tabExt = array('mp3','wav');    // Extensions autorisees

        // Variables
        $extension = '';
        $message = '';
        $nomImage = '';

        /************************************************************
         * Creation du repertoire cible si inexistant
         *************************************************************/
        if( !is_dir(TARGET) ) {
          if( !mkdir(TARGET, 0755) ) {
            exit('Erreur : le répertoire cible ne peut-être créé ! Vérifiez que vous diposiez des droits suffisants pour le faire ou créez le manuellement !');
          }
        }

        /************************************************************
         * Script d'upload
         *************************************************************/
        // On verifie si le champ est rempli
        if( !empty($_FILES['soundFile']['name']) )
        {
            // Recuperation de l'extension du fichier
            $extension  = pathinfo($_FILES['soundFile']['name'], PATHINFO_EXTENSION);

            // On verifie l'extension du fichier
            if(in_array(strtolower($extension),$tabExt))
            {
                // Parcours du tableau d'erreurs
                if(isset($_FILES['soundFile']['error']) && UPLOAD_ERR_OK === $_FILES['soundFile']['error'])
                {
                    // On renomme le fichier
                    $nomFichier = md5(uniqid()) .'.'. $extension;

                    // Si c'est OK, on teste l'upload
                    if(move_uploaded_file($_FILES['soundFile']['tmp_name'], TARGET.$nomFichier))
                    {
                        add_Cartoucheur($p_title,$p_desc,$nomFichier,$p_emission);
                        $msginfo = 'Upload réussi sous le nom : '.TARGET.$nomFichier;
                    }
                    else
                    {
                      // Sinon on affiche une erreur systeme
                      $msginfo = 'Problème lors de l\'upload !';
                    }
                }
                else
                {
                    $msginfo = 'Une erreur interne a empêché l\'upload de l\'image ! ';
                }
            }
            else
            {
              // Sinon on affiche une erreur pour l'extension
              $msginfo = 'Vous pouvez upload seulement des fichiers MP3 et WAV !';
            }
        } else {
            $msginfo = 'Je vois aucun fichier...';
        }


    } else {
        $msginfo = '<div class="alert alert-warning">Remplissez les champs obligatoires.</div>';
    }


}

提前致谢 :)

标签: phpfileupload

解决方案


为文件提交添加 enctype = "multipart / form-data" 标签

<form action="/" method="post" enctype="multipart/form-data">
</form>

推荐阅读