Se connecter avec
S'enregistrer | Connectez-vous

Besoin d'un gros coup de main...

Dernière réponse : dans Programmation

Bonjour à tous,

Je suis nouveau sur le forum et tout neuf dans le monde du PHP/mySQL, j'aurais besoin d'un coup de pouce énorme...

Sa fait plus de 5h que j'essaie de programmer un formulaire php qui pourrait me permettre d'envoyer un fichier sur un serveur, avec d'autres champs, et insérer un lien directe vers ce fichier dans ma base mySQL.

Exemple:

Nom: Nouveautes

Fichier à envoyer: monimage.JPG [Parcourir...]

[Envoyer]

Et que quand je top envoyer, mon image soit envoyé vers mon serveur, et que ma base de donnée ressemble à sa:
nom | liens
Nouveautes | monimage.JPG

Je sait pas si quelqu'un pourra m'aider mais à l'avance merci...

Autres pages sur : besoin gros coup main

Lassé par la pub ? Créez un compte

Merci!

Parce que du coup, en cherchant encore hier soir, j'ai tapé un beau petit script, mais à cause d'un truc (je sait pas quoi d'ailleur!) pas moyen d'envoyer des fichiers autres que des images, alors que je voulais envoyer des PDF!

Mais j'avais procéder en 2 étapes, au lieu de faire tout d'un coup effectivement, j'avait d'abord le système d'upload, le script prenait le nom de la photo et l'ajoutais dans mon formulaire, je remplissais le reste et GO! Mais bon, mon script ne fonctionnait qu'avec des images!

Merci marsien!

  1. <?php
  2. //Détermine si la variable est affectée
  3. if(!isset($HTTP_POST_VARS["upload"])) {
  4.  
  5. ?>
  6. <table width="500" style="border: 1px solid;" rules="all" bgcolor="#C0C0C0"><tr>
  7. <td>Il n'est pas obligatoire d'uploader un fichier.<br>
  8. <form action="ajout_news.php" method="post" enctype="multipart/form-data">
  9.  
  10. <table border="0">
  11. <tr>
  12. <td><input type="file" name="fichier"></td>
  13. <td><input type="submit" name="upload" value="upload"></td>
  14. </tr>
  15. <?
  16. //si envoye
  17. }
  18. else
  19. {
  20. //evite les erreurs undefine variable
  21. error_reporting (E_ALL ^ E_NOTICE);
  22.  
  23. //definit la taille => 150ko
  24. $MAX_FILE_SIZE = 150000;
  25.  
  26. //fixe le type d extension de fichier
  27. $allowed_types = array("image/bmp", "image/gif", "image/pjpeg", "image/jpeg", "image/jpg", "application/pdf");
  28.  
  29. //stockage des proprietes ds des variables
  30. $fname = $HTTP_POST_FILES['fichier']['name'];
  31. $ftype = $HTTP_POST_FILES['fichier']['type'];
  32. $fsize = $HTTP_POST_FILES['fichier']['size'];
  33. $ftmp = $HTTP_POST_FILES['fichier']['tmp_name'];
  34.  
  35. //verifie si le type de fichier est bien autorise
  36. if(!in_array($ftype, $allowed_types))
  37. {
  38. //message si n est pas correct
  39. die("<br><center><b>Le format de votre fichier n est pas correct..<a href = 'ajout_news.php'><b>Retour</b></a></center>");
  40. }
  41. //verifie taile
  42. if($fize > $MAX_FILE_SIZE)
  43. {
  44. //si superieur on affiche un message
  45. die("<center>Votre fichier est trop gros!!!<br><a href ='ajout_news.php'><b>Retour</b></a></center><br>");
  46. }
  47.  
  48. //si tout est ok, on copie le fichier ds le repertoire fixe et affiche un mess si tout est ok
  49. if(copy($ftmp,"upload/".$fname))
  50. {
  51. echo"<br><center><b>$url_script/$upload/$fname correctement uploadé, copier/coller le lien pour inclure une image dans votre news.</b></center>";
  52. }
  53.  
  54. }
  55.  
  56. ?></form></td>
  57. </tr>
  58. </table><br />
  59. <form name="form1" method="post" action="ajout_news2.php">
  60. ....

Voilà, du coup j'ai mis sa!
Mais là, j'ai un autre soucis, je peut Uploadé des images, des PDF, ... Sa marche niquel en Local, mais une fois sur serveur, plus rien! Le formulaire d'upload ne donne plus rien, et je trouve pas d'ou sa vient!

Merci d'avance...

(rien à voir: beurk une table avec le style dans le code et 150ko c'est 153600 pas 150000 :o )

"application/pdf" est le bon type mime pourtant :( 

Tu as essayé avec plusieurs browsers ?
Tu as regardé quel type était renvoyé ?
avec un simple
  1. print_r($HTTP_POST_FILES['fichier']['type']);
Lassé par la pub ? Créez un compte