Titre: Pb upload via form php
Posté par: graeciah le le 09-05-2009 a 12:07:58
Bonjour à tous, toute nouvelle sur ce fofo je tente ma chance, car je suis sur un pb qui va me faire devenir chèvre !
Je me présente brievement, sophie 24 ans, infographiste sur paris, j'ai eu la stupidité d'accepter de faire le php avec mon design et je bloque sur un pb de dingue......
voilà j'ai 3, 4 formulaires d'envoie de fichier (un pour les docs, un pour les audios, un pour les images), avec vérification du mime_type
Code:
| $ftype = $_FILES['fichier']['type']; |
|
Tout marchait nickel !
Depuis une semaine aucun des formulaires ne marchent ! Je précise : je n'a rien changé ! il m'affichent tous : "Format de fichier incorrecte - application/octet-stream"
Peu importe le type : jpg, xls, doc, odt, j'aurai toujours "octet-stream"
Et alors dernière précision de malade... Sur certains PC ça passe... D'autre non.. (dont le mien)................
Merci mille fois d'avance, j'en peux plus >< |
Titre: Re:Pb upload via form php
Posté par: Krash le le 10-05-2009 a 13:03:35
Bonjour,
serait-il possible de voir le code plus en détail ?
Si vous souhaitez, vous pouvez prendre mon msn qui se trouve sur mon profil et on regardera ca, sinon vous pouvez toujours coller le code ici et je verrais ce que je peux faire |
Titre: Re:Pb upload via form php
Posté par: graeciah le le 10-05-2009 a 17:41:07
Code:
<? if($posted == "1")
{ // ---------------------- UPLOAD AUDIO PARAGRAPHE
if ($fichier != "")
{
// Taille maximum $MAX_FILE_SIZE = 5000000;
// Dossier de destination du fichier $folder = "doc/";
// Tableau array des différents types $allowed_types = array("application/pdf", "application/msword", "application/vnd.oasis.opendocument.text");
// Variables récupérée par methode POST du formulaires $fname = $_FILES['fichier']['name']; $ftype = $_FILES['fichier']['type']; $fsize = $_FILES['fichier']['size']; $ftmp = $_FILES['fichier']['tmp_name'];
$error = 0;
// Diverses test afin de savoir si : // Le format de fichier correspond à notre tableau array if(!in_array($ftype, $allowed_types)){$error = 1;}
// La taille du fichier n'est pas dépassée if($fsize > $MAX_FILE_SIZE){$error = 2;}
// Switch servant simplement à la gestion des erreures switch($error) { case'0': echo("<p align=\"center\" class=\"little2\">Fichier correctement envoyé.</p>"); break; case'1': echo("<p align=\"center\" class=\"little2\">Format de fichier incorrecte - ".$ftype."<br /><br /><a class=\"little\" href=\"javascript:window.history.back();\">Retourner en arrière pour joindre ma présentation audio.</a></p>"); break; case'2': echo("<p align=\"center\" class=\"little2\">Fichier trop volumineux.<br /><br /><a class=\"little\" href=\"javascript:window.history.back();\">Retourner en arrière pour joindre ma présentation audio.</a></p>"); break; } // switch error
if ($error==0)
{ if($ftype == "application/msword") { $typedoc = "doc"; } elseif($ftype == "application/pdf") { $typedoc = "pdf"; } elseif($ftype == "application/vnd.oasis.opendocument.text") { $typedoc = "odt"; }
$query24 = "INSERT INTO `bai_doc` ( `dc_id` , `dc_idmb` , `dc_ididee` , `dc_titre` , `dc_type`) VALUES ('', '".$_SESSION["membreid"]."', '$ididee', '$titre', '$typedoc')"; $result24 = mysql_query($query24) or die ("Insertion impossible sur la table idées (doc). Couple login/pass sûrement faux. Réessayez.");
$iddoc = mysql_insert_id(); if($ftype == "application/msword") { $file = "doc".$ididee."-".$iddoc."-".$ididee."-".$iddoc.".".$typedoc; } elseif(($ftype == "application/pdf")||($ftype == "application/acrobat")||($ftype == "fichier/acrobat")||($ftype == "fichier/pdf")) { $file = "doc".$ididee."-".$iddoc."-".$ididee."-".$iddoc.".".$typedoc; } elseif($ftype == "application/vnd.oasis.opendocument.text") { $file = "doc".$ididee."-".$iddoc."-".$ididee."-".$iddoc.".".$typedoc; }
if(copy($ftmp,''.$folder.''.$file.''))
{
$audio = "1"; $error = 0;
echo "<SCRIPT LANGUAGE=\"JavaScript\"> function redirect() { window.location=\"index.php?p=add_doc&ididee=".$ididee."\" } setTimeout(\"redirect()\",1000); </SCRIPT>";
} // Upload
} // 0 erreur
} // Si fichier
}
?> <form action="" style="padding:0px; margin:0px;" id="inscription" name="inscription" enctype="multipart/form-data" method="post" onSubmit="javascript:return valider();"> <input type="hidden" name="posted" id="posted" value="1" /> <input type="hidden" name="ididee" id="ididee" value="<? echo $ididee; ?>" />
<div id="case-n-total" class="titlepage"> <img src="design/document.jpg" border="0" alt="Ajouter un document" name="icone" /> <? if($upup == "6") { echo "Gérer vos fichiers doc"; } else { echo "Ajouter à votre idée un fichier"; } ?> </div>
<div id="case-n-interligne"> </div>
<div id="case-n-1quart" class="titlecase">Titre du fichier :</div><div id="case-n-3quart"> <input class="little2" type="text" id="titre" name="titre" size="20" maxlength="150" /> </div>
<div id="case-n-interligne"> </div> <div id="case-n-interligne"> </div>
<div id="case-n-1quart" class="titlecase">Fichier :</div><div id="case-n-3quart"> <input class="little2" type="file" name="fichier" id="fichier" /> </div>
<div id="case-n-interligne"> </div> <div id="case-n-interligne"> </div> <div id="case-n-interligne"> </div>
<div id="case-n-totalc"> <input type="submit" style="border:solid 1px #30adca; background-color:white;" name="envoyer" class="little bold" id="envoyer" value="Confirmer" /> </div>
</form>
|
|
|
Titre: Re:Pb upload via form php
Posté par: graeciah le le 11-05-2009 a 09:24:20
Précision... Mes formulaires marchent sur IE............ >_<
Je pige pas ! Pourquoi un type de fichier changerait d'un navigateur à un autre. !!!! |
Titre: Re:Pb upload via form php
Posté par: Lilian le le 11-05-2009 a 09:34:36
Bonjour,
Il faudrait plutôt tester l'extension que le type du fichier en lui-même.
A essayer. |
Titre: Re:Pb upload via form php
Posté par: graeciah le le 11-05-2009 a 19:05:21
| Certains méchants peuvent nommer un fichier txt en .jpg (un exemple parmi tant d'autre) et balancez des fichiers nuisibles sur le ftp non ? |
Titre: Re:Pb upload via form php
Posté par: Lilian le le 11-05-2009 a 19:16:10
Tout le monde est censé avoir une protection antivirus efficace ? non ? :)
Et dans tous les cas ... une personne renommant un .exe en .txt n'ira pas bien loin car un .txt ne s'execute pas :) |
Forum-webmaster | Actionné par YaBB SE
© 2001-2003, YaBB SE Dev Team. Tous droits réservés.
|