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

Sécurité Discussion :

uploader fichier : quelle solution choisir


Sujet :

Sécurité

  1. #1
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 249
    Points : 314
    Points
    314
    Par défaut uploader fichier : quelle solution choisir
    Bonjour,

    je voudrais uploader un fichier sur un serveur. L'ideal serait de le faire en AJAX (pour que l'utilisateur puisse continuer à naviguer sur la page web), mais j'ai cru comprendre que c'est impossible.

    qu'elles sont les methodes pour uploader un fichier ?
    comment ça fonctionne exactement ? c'est le serveur qui va chercher le fichier chez l'hote ou c'est l'hote qui envoie directement le fichier sur le serveur ?
    je ne comprende pas bien comment fonctionne le transfert (bniveau securité) => normalement, l'hote n'a pas le droit d'ecrire directement sur le serveur, non ? et le seveur n'a pas le droit de lire le disque dure de l'hote, non ?

  2. #2
    Membre éclairé Avatar de cadoudal56
    Profil pro
    Inscrit en
    Février 2005
    Messages
    694
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2005
    Messages : 694
    Points : 779
    Points
    779
    Par défaut
    Hello,

    Tout dépend des langages disponibles sur ton serveur...
    Mais dans tous les cas, il faut que ton serveur autorise les upload de fichiers...

    Je te donne ici l'exemple en PHP
    Mais en gros tu utilises un champ INPUT FILE et un encodage de formulaire spécifique

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <form action="monscript.php" name="edi" method="post" enctype="multipart/form-data">
    <input type="text" name="shortname" value=""  size="40" />
    <input type="file" name="cover" size="35" />
    </form>
    L'utilisateur verra donc une boite de texte avec un bouton parcourir qui lui permet de sélectionner le fichier a envoyer.
    Quand il va le valider, le serveur va uploader le fichier chez lui.

    Ensuite tu peux récupérer les infos du fichier comme ceci dans le script pout le traietement :

    $file = $_FILES['cover']['tmp_name'] => Nom du fichier temporaire envoyé sur le serveur. Il te faudra le déplacer, renommer a l'aide de PHP

    $name = $_FILES['cover']['type'] => Le type MIME du fichier qui a été envoyé. Utilie pour voir si le type de fichier est autorisé (par ton script).

    $size = $_FILES['cover']['size'] => La taille du fichier qui a été envoyé.

    Pour le déplacer tu fais comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $file = $_FILES['cover']['tmp_name'];
    
    $myimage = 'images/logo.jpg';
    move_uploaded_file($file, $myimage);
    Mais bon, un bon cours est meilleur qu'un long discours, donc tu trouveras toutes les explications ici
    Upload de fichiers en PHP

    @+
    cadou
    LMN24 - Site d'actualité internationale multilingue
    http://www.lmn24.com

  3. #3
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 249
    Points : 314
    Points
    314
    Par défaut
    je n'ai pas bien compris : lorsque l'on fait un "post", on ecrit directement sur le disque dur du serveur (je ne comprends pas pourquoi on a le droit d'ecrire comme ça sur le disque dur : c'est dangereux, non ? ...ex : si on envoie pleins de fichiers valumineux en même temps => risque de remplir le disque dure ...) ?

    c'est quoi le protocole utilisé lors de l'envoie du fichier (HTTP, FTTP,...) ?

  4. #4
    Membre éclairé Avatar de cadoudal56
    Profil pro
    Inscrit en
    Février 2005
    Messages
    694
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2005
    Messages : 694
    Points : 779
    Points
    779
    Par défaut
    Hello,

    La solution décrite est en HTTP.
    Il existe des solutions via FTP, mais je les connais mal. La solution HTTP est la plus courante.

    On n'écrit pas réellement sur le serveur, on écris dans un fichier temporaire qui se videra de lui meme. C'est ton sc ript (qui lui a la main) qui va déplacer du répertoire temporaire vers l'endroit voulu pour le stockage.

    Il n'y a pas de réel risque de saturer le serveur car :

    Dans le formulaire tu peux mettre une sécurité de cette manière :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <!-- On limite le fichier à 100Ko -->
    <input type="hidden" name="MAX_FILE_SIZE" value="100000">
    La valeur est inscrite en octets.
    100000 => 100Ko
    1000000 => 1Mo

    D'autre part il existe dans la configuration du serveur une limite autorisée pour l'upload du fichier. Dans la plupart des cas cette limite se situe à 2Mo

    Enfin et pour conclure, tu peux vérifier toi même la taille du fichier qui a été envoyé avec la variable $size = $_FILES['cover']['size']

    Si elle ne correspond pas a ce que tu souhaites, tu ne déplace pas le fichier temporaire et ce dernier s'effacera tout seul.

    @+
    cadou
    LMN24 - Site d'actualité internationale multilingue
    http://www.lmn24.com

  5. #5
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 249
    Points : 314
    Points
    314
    Par défaut
    ok merci pour ta reponse

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

Discussions similaires

  1. SSH ou VPN ? quelle solution choisir
    Par hardballer dans le forum Sécurité
    Réponses: 2
    Dernier message: 31/10/2007, 18h10
  2. [Spip] Webzine : quelle solution choisir ?
    Par tonyfromparis dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 06/04/2007, 14h03
  3. [Héritage et Interfaces] Quelle solution choisir ?
    Par BlackWood dans le forum Langage
    Réponses: 10
    Dernier message: 14/11/2006, 11h08
  4. [Popup]Quelle solution choisir ? Quel langage ?
    Par khany dans le forum Général Conception Web
    Réponses: 5
    Dernier message: 20/06/2006, 20h28
  5. [Intranet] Quelle solution choisir ?
    Par stailer dans le forum Développement
    Réponses: 6
    Dernier message: 06/09/2003, 01h17

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