move_uploaded_file无效,没有错误

时间:2014-12-16 01:38:42

标签: php

我必须为学校建立一个网站,我希望能够上传图片。 move_uploaded_file()函数不起作用,我不知道为什么,路径都是正确的(我用回显显示它们):\ annd not /,move_uploaded_file()中有文件名,目录创建成功但是我无法得到它的图片:/

这是我的代码:

                   if(isset($_POST["submitted"]))
                   {
                     if ($_FILES['imgWork']['error'] > 0) 
                    {
                        $erreur = "Erreur lors du transfert"; //Vérification
                        echo $erreur;
                        if($_FILES['imgWork']['error'] == UPLOAD_ERR_NO_FILE)
                        {
                            $erreurDetail = "fichier manquant."; //Vérification
                            echo $erreurDetail;
                        }
                        if($_FILES['imgWork']['error'] == UPLOAD_ERR_INI_SIZE)
                        {
                            $erreurDetail = "fichier dépassant la taille maximale autorisée par PHP."; //Vérification
                            echo $erreurDetail;
                        }
                        if($_FILES['imgWork']['error'] == UPLOAD_ERR_FORM_SIZE)
                        {
                            $erreurDetail = "fichier dépassant la taille maximale autorisée par le formulaire."; //Vérification
                            echo $erreurDetail;
                        }
                        if($_FILES['imgWork']['error'] == UPLOAD_ERR_PARTIAL)
                        {
                            $erreurDetail = "Partiel"; //Vérification
                            echo $erreurDetail;
                        }
                    }
                    else
                    {   
                        $tmp = $_FILES['imgWork']['tmp_name'];
                        $servRoot = str_replace("/",DIRECTORY_SEPARATOR,$_SERVER["DOCUMENT_ROOT"]); // adaptation du chemin racine serveur
                        $dossierWork= $servRoot.'siteOk'.DIRECTORY_SEPARATOR.'img'.DIRECTORY_SEPARATOR.'worksTest'.DIRECTORY_SEPARATOR;
                        //Créer un dossier
                        if(!file_exists($dossierWork))
                            mkdir($dossierWork, 0777, true);
                        //1. strrchr renvoie l'extension avec le point (« . »).
                        //2. substr(chaine,1) ignore le premier caractère de chaine.
                        //3. strtolower met l'extension en minuscules.
                        $ext = strtolower(  substr(  strrchr($_FILES['imgWork']['name'], '.')  ,1)  );
                        $nom = md5(uniqid(rand(), true)); //Nom random du fichier
                        $path = $dossierWork.$nom.'.'.$ext; //Chemin du fichier avec nom random et extension en partant de la racine du serveur.

                        $resultat = move_uploaded_file($tmp,$path);
                        if ($resultat) 
                        {
                            $transfert='<span style="color: green;">Transfert réussi</span>';
                        }
                        else
                        {
                            $transfert='<span style="color: red;">Echec du transfert</span>';
                        }

                        echo $tmp.'<br>';
                        echo $path.'<br>';
                        echo $ext.'<br>';                           
                        echo $nom.'<br>';
                    }

}

以下是表格:

                        <form method="post" action="index.php#addWorks" enctype="multipart/form-data">
                        <fieldset>
                            <legend>Ajouter un travail</legend>     
                                <label>Titre* :<input type="text" name="titre_form" /></label><br> 
                                <label>Description* :<input type="text" name="description_form" /></label><br>
                                <label>Signature* :<input type="text" name="signature_form" /></label><br>
                                <input type="file" name="imgWork" /> <br>
                                <?php
                                    if(isset($_POST["submitted"]))
                                    {
                                        echo $transfert.'<br>';
                                    }
                                ?>
                                Graphisme<input type="radio" name="type" value="graphisme" checked class="radio"/><br>
                                3D<input type="radio" name="type" value="3d" class="radio"/><br>
                                Web<input type="radio" name="type" value="web" class="radio"/><br>

                        </fieldset>
                        <input type="submit" name="submitted" value="Envoyer" />
                    </form>

它只写“echec du transfert”,所以我猜它是move_uploaded_file。

我怎样才能让它发挥作用?

谢谢:)

编辑:指定我在Windows 8上使用WampServer可能很有用:)

0 个答案:

没有答案