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

JavaScript Discussion :

Upload + Javascript


Sujet :

JavaScript

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 4
    Points : 1
    Points
    1
    Par défaut Upload + Javascript
    Bonjour,

    J'ai fais un upload de fichier tout bête en html / php.

    Maintenant, j'aimerais avoir un état d'avancement de l'upload du fichier.
    Pour ça, j'ai envoyé mon formulaire dans une iframe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <form name="upload" method="POST" target="moniframe" action="upload.php" ENCTYPE="multipart/form-data">
              <INPUT type=hidden name=MAX_FILE_SIZE  VALUE=2048>
              <INPUT type=file name="filename">
              <INPUT type=submit value="Envoyer">
    </form>
    Ensuite j'ai un javascript qui appelle une page size.php toute les 750ms pour renvoyer la taille du fichier temporaire.

    Tout cela fonctionne correctement.

    Le problème c'est que je n'ai pas la taille totale du fichier pour faire mon pourcentage et je ne peux récupérer $_FILES['filename']['size'] qu'une fois le fichier sur le serveur.

    Donc : Existe-il un moyen d'avoir la taille d'un fichier en js (google à l'air de dire non) ou plus généralement un moyen par javascript/ajax d'avoir le pourcentage de l'upload ?

    J'espère que vous aurez une solution

    Merci d'avance.

  2. #2
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Points : 4 835
    Points
    4 835
    Par défaut
    pas a ma connaissance ...

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Mince...

    Merci quand même d'avoir répondu

    Pour préciser ma question : Comment free fait sa progress bar sans flash ni java?

    http://dl.free.fr

    C'est vraiment ce résultat que j'aimerais et il ne me manque que la taille totale pour le faire...

  4. #4
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Points : 4 835
    Points
    4 835
    Par défaut
    un patch sur le serveur apache permettant de récupérer la taille du fichier temporaire

    demie réponse : ajax upload de base :
    http://www.webtoolkit.info/ajax-file-upload.html

    cherche un peu dans cette direction tu trouveras des script plus évolué ^^

  5. #5
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Après plusieurs recherche sur google, il semble impossible de faire cette barre de progression juste en php + ajax car on n'a pas la taille totale (point de départ de mon post)

    Il existe une solution en flash grâce à FileReference dans Action Script mais cette solution ne m'intéresse pas, idem pour java. En effet, rien de plus énervant pour un visiteur que d'avoir le plugin java ou flash qui va bien... On veut du natif

    Oui mais en natif (sans plugin) il n'existe qu'une solution, c'est du perl coté serveur et ça à l'air chaud. Apparement c'est ce qu'utilise free :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    window.setTimeout("goajax('/progress.pl?xxxxxxxx')", 1000);
    On a bien du .pl

    Je vais donc me diriger vers cette solution, et du coup je pense ouvrir un nouveau post dans perl/php ^^

    Merci pour tout.

    Source : http://www.wulab.com/articles/upload-barre-progression.html

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 2
    Points : 2
    Points
    2
    Par défaut reponse a la progress bar
    salut, bon a force de rechercher, j'ai trouver une solution intéressante.

    Si vous possédé une version de php supérieur a la 5.2, une librairie est faite pour vous, c'est la lib apc. Cette lib a une variable apc.rfc1867 qui contient toutes les informations utiles : taille du fichier totale, taille déjà uploader et tout. pour plus d'info http://fr.php.net/manual/fr/apc.configuration.php


    Voila, mais mon problème reste entier si on a une version php4 et que l'on ne veut pas toucher à la version

  7. #7
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Points : 4 835
    Points
    4 835
    Par défaut
    effectivement , la avec un retour ajax, tu pourrais pt ... mais en php 4 non

    utilise un module d'upload flash

  8. #8
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Effectivement j'ai trouvé 2 solutions sans passer par perl ni flash ni java.

    Ces solutions sont APC ou une extension PHP.

    Ces 2 solutions nécessitent d'être admin de son serveur (exit les hebergement free, etc...)

    J'ai utilisé l'extension "uploadprogress" de PHP :

    1) apt-get install php5-dev
    2) pecl install uploadprogress
    3) vi /etc/php5/conf.d/uploadprogress.ini
    extension=uploadprogress.so
    uploadprogress.file.filename_template=/tmp/upt_%s.txt
    4) /etc/init.d/apache2 restart

    (Un phpinfo() indique que le plugin est installé ainsi que sa version.)

    Ensuite un petit coup de ajax toutes les secondes vers une page php qui renvoi toutes les infos de l'upload par la commande

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $info = uploadprogress_get_info($_GET['ID']);
    var_dump($info);
    ID étant un identifiant aléatoire généré dans la page du formulaire d'upload
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $id = md5(microtime() . rand());
    Pour APC je n'ai pas encore testé vu que cette solution marche très bien.

    En espérant que ça serve à quelqu'un

  9. #9
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Points : 4 835
    Points
    4 835
    Par défaut
    pas mal ! tu pourrais également la poster coté php

Discussions similaires

  1. [JavaScript/CSS] Upload de plusieurs fichiers
    Par BiM dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 14/05/2009, 16h45
  2. [PHP-JS] Upload de fichier en passant par JAVASCRIPT + PHP
    Par polothentik dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 06/05/2008, 08h52
  3. Upload File Javascript
    Par DrE44 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 26/01/2007, 15h40
  4. asp(javascript) upload fichier
    Par amin1425 dans le forum ASP
    Réponses: 2
    Dernier message: 22/11/2006, 10h43
  5. [Javascript] UPLOAD FICHIER(avc code de modif du txt dun iput type file)
    Par genjikun dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 01/02/2006, 16h05

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