nouvelle extension pour script upload file

Répondre
LDL
le 03/04/2011 à 21:04
LDL
.


Bonjour a tous,


J'utilise un script pour une page permettant de charger des fichiers vers mon hebergement, qui fonctionne tres bien avec l'extension actuelle,
mais je voudrais les remplacer par l'extension de fichiers sgf (fichier texte au format smart game pour jeux de reflexion),

mon probleme est que il refuse l'extension, j'ai tout essaye, en vain.

1- J'ai essaye de remplace la premier ligne image/jpg par text/sgf, il me dit invalid file
2- j'ai garde la premier ligne et rajouté un fermer parenthèse, et supprimé les ligne 3 et 4, n'ayant pas besoin des extensions jpeg et pjeg, ll me dit invalid file
3- j'ai essaye de remplacer les trois lignes par text/sgf, pareil, meme probleme.....
(bon comme vous vous en etes apercu, je n'y connais rien malheureusement...)

voici mon script php :

<?php
if ((($_FILES["file"]["type"] == "image/jpg")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/pjpeg"))
&& ($_FILES["file"]["size"] < 2000000))
{
if ($_FILES["file"]["error"] > 0)
{
echo "Return Code: " . $_FILES["file"]["error"] . "<br />";
}
else
{
echo "Upload: " . $_FILES["file"]["name"] . "<br />";
echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";

if (file_exists("upload/" . $_FILES["file"]["name"]))
{
echo $_FILES["file"]["name"] . " already exists. ";
}
else
{
move_uploaded_file($_FILES["file"]["tmp_name"],
"upload/" . $_FILES["file"]["name"]);
echo "Stored in: " . "upload/" . $_FILES["file"]["name"];
}
}
}
else
{
echo "Invalid file";
}
?>



Quelqu'un pourrait il m'aider ?
Merci vraiment beaucoup d'avance.....
:)



.
LDL
le 04/04/2011 à 01:47
LDL
.


Après recherches, il y a un problème apparemment sur le MIME type....

J'ai changé la dernier ligne de mon code en :
echo "Invalid file [".$_FILES["file"]["type"]."]";

et j'obtiens un :
Invalid file [application/octet-stream]


Si je me réfère a la documentation de référence de ce genre de fichiers pour le problème de MIME type ici :
http://gobase.org/software/sgfformat/SGFandWWW.html#sgf_mimetype

le MIME type serait :
application/x-go-sgf

Si je me réfère au seul qui actuellement est arrivé a mettre en ligne une page upload pour ce type de fichiers ici :
http://eidogo.com/upload

Sa note de travail justement sur le problème des MIME type de ces fichiers ici :
http://code.google.com/p/eidogo/issues/detail?id=10
http://code.google.com/p/eidogo/issues/attachmentText?id=10&aid=-4651077343626401526&name=eidogo-download-mimetype.patch&token=d65de40c79de52aed046cb3414c7da31

Il précise le MIME type adéquat a utiliser :
- text/plain
- application/x-go-sgf


J'ai mis ces 2 MIME types de cette manière :

if ((($_FILES["file"]["type"] == "text/plain")
|| ($_FILES["file"]["type"] == "application/x-go-sgf")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/pjpeg"))
&& ($_FILES["file"]["size"] < 2000000))

même message d'erreur :
Invalid file [application/octet-stream]


Quelqu'un a t'il une idée ? Ou je me suis trompé quelque part peut-être dans mon bout de code....
:(


.
moogli
le 04/04/2011 à 13:43
moogli
heu wé je t'est bien orienté nan :d

aurais tu un fichier exemple et le code complet ?

@+
Il en faut peu pour être heureux !!!!!
LupusMic
le 05/04/2011 à 02:48
LupusMic
C'est un problème lié au navigateur web. Le type mime n'est pas correctement renseigné par certains navigateurs dont je tairais le nom.

De toute façon, c'est une donnée fournie par le navigateur, et donc ce n'est pas de confiance.

Le type mime application/octet-stream est un type générique qui est donné par le navigateur, quand il ne peut pas déterminer le type mime correct (il suffit qu'il ne le connaisse pas).

Du coup, il faut de toute façon tester le fichier avec l'extension mime magic de PHP, par exemple.
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours