IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

upload de fichier [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 97
    Par défaut upload de fichier
    voila je souhaite uploader des fichiers puios qu'ils soient recuperable par telechargement...jusqu'a là c'est logique. L'upload fonctionne tres bien sauf que dans le chemin d'accés il y a le terrible Espace (oooo). C'est ca qui me pose probleme je ne peux pas changer le chemin et je dois donc trouver un moyen de recuperer les fichiers malgres l'espace...

    voici le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
     
    if (isset ($_FILES['nomF']))
    {
    $dossier = 'D:/users/commun magasin/news';
    $fichier = basename($_FILES['nomF']['name']);
    $taille_maxi = 9000000;
    $taille = filesize($_FILES['nomF']['tmp_name']);
    $extensions = array('.png', '.gif', '.jpg', '.jpeg', '.xlsx', '.txt', '.csv', '.pdf');
    $extension = strrchr($_FILES['nomF']['name'], '.'); 
    //Début des vérifications de sécurité...
    if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau
    {
         $erreur = '<center><p style="color:orange;font-size:20px;">Aucun fichier n\'a ete transfere</center><br/>';
    }
    if($taille>$taille_maxi)
    {
         $erreur = '<center><p style="color:orange;font-size:20px;">Le fichier est trop gros...</center><br/>';
    }
    if(!isset($erreur)) //S'il n'y a pas d'erreur, on upload
    {
    	$lieu=$dossier."/".$fichier;
         //On formate le nom du fichier ici...
         $fichier = strtr($fichier, 
              'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 
              'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
         $fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
    	 $fichier = $dossier."/".$fichier;
    	 $fichier = str_replace(' ','%20',$fichier);
         if(move_uploaded_file($_FILES['nomF']['tmp_name'], $lieu)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
         {
              echo '<center><p style="color:orange;font-size:20px;">Upload effectué avec succès !</center><br/>';
         }
         else //Sinon (la fonction renvoie FALSE).
         {
              echo '<center><p style="color:orange;font-size:20px;">Echec de l\'upload !</center><br/>';
    		  echo $fichier;
    		  echo $dossier;
         }
    Et la page où j'ai le lien :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    else {
     
    	while ($data = mysql_fetch_array($req)) {
    		echo '<b>News N° ' , $data['id'] , ' par ' , $data['auteur'] , '</b><br />';
    		echo '<b>Titre : </b>' , $data['titre'] , '<br />';
    		echo 'Postee le : ' , $date , '<br/>';
    		echo '<b>News :<br/></b><p style="font-size:30px;"><i>' , $data['texte_news'] , '</i></p>';
    		?>
    		<a href="<?php echo $data['Nomfichier']?>" class="add" > <?php echo $data['Nom'];?> </a><br/>
    		<?php
    		echo '_____________________________________________<br/>';
    	}
    }

  2. #2
    Membre Expert
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ?>
    		<a href="<?php echo urlencode($data['Nomfichier']);?>" class="add" > <?php echo $data['Nom'];?> </a><br/>
    		<?php
    //Début des vérifications de sécurité...
    if(!in_array($extension, $extensions))
    je savais pas que le nom d'un fichier avait une importance quelconque

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 97
    Par défaut
    le lien marche maintenant mais le probleme c'est qu'il me dit page web introuvable :s

    ps: j'ai remarqué que ce n'est pas l'espace qui pose probleme car si je met les fichiers uploadé dans le meme dossier que mes pages php il n'y a pas de probleme. c'est pour indiquer un chemin genre D:/.../fichierupload.csv (exemple) dans ce cas j'ai un url qui est soit :

    File:///D:/... (ca me donne un lien non clicable)

    ou encore mieux :

    http://localhost/Workflow/C:/wamp/www/Workflow/... (url non trouvable)

    et pauvre de moi je veux tout simplement un truc du genre :

    http://localhost/C:/wamp/... (où je peux clic et qui me propose le dl du fichier) :'(

  4. #4
    Membre Expert
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Par défaut
    normal.

    il faut mappé le chemin du fichier (D:\un\chemin\dans\le\system\qui\reste\secret\vers\le\fichier) dans le system vers une URL "publique" du genre http:\\localhost\le\repertoire\que\je\veux\document.interessant )

    pour celà plein de techniques, j'ai pas encore trouver de chose qui me plaise vraiment.
    en tout cas, il faut que

    • le répertoire ou tu stockes les documents soit "servi" (+/- sous controle) par apache (par défaut www et ses enfants uniquement sous wamp)
    • tu te contentes de mettre dans le href le chemin relatif du document à partir du répertoire www
    • ça c'est la solution la plus simple mais perso j'aime pas mélanger les répertoires qui contiennent des scripts et les repertoires qui contiennent des documents à servir comme du html. Sous apache, j'aurai envie de définir le serveur virtuel http://documents.localhost/ mais ça demande un peu de taf supplementaire et de mettre les documents à publier dans une autre racine que www.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 97
    Par défaut
    et sous wamp il y a moyen de modifier les repertoires servis, pour qu'il n'y ai pas que www et ses enfants mais un choix plus large comme le disque dur local^^

    parceque j'ai wamp sur le C:/ sur le serveur

    sur ce meme server j'upload mes fichiers (pour mon exemple) sur D:/users/.../fichiers.ext

    ps : mes problemes se sont agravés depuis hier, sur le server, wamp ne veut plus demarer mysql, c'est plutot genant tout ca et je sais pas si c'est parceque j'ai mis apache sur le port 81 et oublié de modifié une autre config...

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 97
    Par défaut
    Bon apres de longs moments de recherche, mysql ne demarre pas a cause d'une application plutot importante, donc ce sera un autre pc qui servira de serveur avec HDD externe.

    Je vais installer wamp sur ce HDD et mettres les dossiers (identiques a ceux du server, juste les deplacer en fait) dans le dossier www du HDD. En plus de resoudre le probleme de mysql ca va surement resoudre celui de l'upload car le dossier www est servi comme gene l'a dit plus haut.

    Avec cette configue j'espere que ca tournera normalement. j'attend l'avis de gene ou la verification^^

  7. #7
    Membre Expert
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Par défaut
    n'attend pas, j'ai absolument aucune idée sur le problème décrit. Même pas sur de bien comprendre. Je sais que sous wamp tu peux tout faire de ce qui est possible avec apache et PHP à quelques limitations pres, mais je sais pas ton niveau...

    Par contre ce que je pense c'est que avoir un serveur web sur le port 81 c'est pas standard et ça va t'obliger à forcer le port dans TOUTES les urls. c'est moche.

    genre http://localhost:81/ au lieux de http://localhost/

    si tu as plusieurs site sur une meme machine la solution officielle c'est serveur web virtuel (au sens HTTP) et une seule application pour servir du web.

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 97
    Par défaut
    bon et bien apres modifications j'ai mon appli web sur un serveur, où elle sera toute seule et personne pour l'embeter... =), l'upload fonctionne et tout est plus simple, mon dossier d'upload est C:/wamp/www/... et ainsi j'ai pas d'url bizarre pour le dl. Et sur cette machine apache peut rester sur le port 80

    donc voila resolu (normalement^^)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [FTP] Problème pour uploader un fichier
    Par Crazyblinkgirl dans le forum Entrée/Sortie
    Réponses: 10
    Dernier message: 07/01/2008, 22h21
  2. Upload de fichier par XMLHTTP
    Par Immobilis dans le forum ASP
    Réponses: 6
    Dernier message: 21/01/2005, 17h02
  3. upload de fichier
    Par 120 dans le forum ASP
    Réponses: 16
    Dernier message: 21/06/2004, 12h07
  4. Upload de fichiers sur un ftp
    Par Crazyblinkgirl dans le forum ASP
    Réponses: 10
    Dernier message: 20/06/2004, 11h55
  5. Upload de fichiers
    Par GDVL dans le forum ASP
    Réponses: 4
    Dernier message: 03/06/2004, 12h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo