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

EDI, CMS, Outils, Scripts et API PHP Discussion :

Upload par FTP avec des gros fichiers [Fait]


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Membre habitué
    Avatar de __fabrice
    Homme Profil pro
    Développeur Back-End
    Inscrit en
    Août 2004
    Messages
    404
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Back-End

    Informations forums :
    Inscription : Août 2004
    Messages : 404
    Points : 194
    Points
    194
    Par défaut Upload par FTP avec des gros fichiers
    salut à tous,

    Je dois faire un systeme d'upload par FTP. Bon, j'ai testé un code tout simple (voir ci-dessous) et cela marche avec des fichiers de 2 megas environs. Au dessus, çà plante.

    Je suis en SAFE_MODE à OFF !

    le formulaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <form action="upload_ftp.php" method="POST" enctype="multipart/form-data">
    <input type="hidden" name="MAX_FILE_SIZE" value="9000000" />
    <INPUT name="fichierftp" type="file"  size="30">
    <INPUT name="submit_upload" type="submit" value="Envoyer">
    </form>
    et le fichier php :
    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
     
    $conn_id = ftp_connect("mon.ftp");
    $login_result = ftp_login($conn_id, "login", "password");
     
    ftp_chdir($conn_id,'mon_repertoire');
     
    //on envoi le fichier s'il y en a un
     
    $destination_file = $_FILES['fichierftp']['name'];
    // upload the file
     
    $upload = ftp_put($conn_id, $destination_file, $file_to_upload, FTP_BINARY);
     
    // check upload status
    if (!$upload){
          $messages.=" L'envoi du fichier a échoué. Veuillez recommencer";
    } else{
          $messages.=" L'envoi du fichier a été réalisée avec succès.";
       }
     
        echo $messages;
    Une idée ?

    Fabrice

  2. #2
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    déjà demandé à de nombreuses reprises...
    http://fr3.php.net/manual/fr/feature...n-pitfalls.php
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag (en bas)

  3. #3
    Membre éprouvé
    Avatar de ozzmax
    Inscrit en
    Novembre 2005
    Messages
    977
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Novembre 2005
    Messages : 977
    Points : 959
    Points
    959
    Par défaut
    ouep comme swoög...faut que tu modifies le php.ini pour permettre le transfer de fichier plus volumineux

    http://php.developpez.com/faq/?page=...ers_uploadsize

    j'avais ce meme probleme lors de l'upload et maintenant ca marche nickel!
    La perfection n'est pas un but, l'amélioration constante devrait l'être!
    La position des Développeurs de developpez avec les explications

  4. #4
    Membre éclairé
    Avatar de Kioob
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    550
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 550
    Points : 764
    Points
    764
    Par défaut
    Note : sais tu que là tu fais un upload HTTP suivi d'un upload FTP ? S'il s'agit de la même machine, ça ne sert absolument à rien (erreur classique de débutant).
    Google is watching you !

  5. #5
    Membre habitué
    Avatar de __fabrice
    Homme Profil pro
    Développeur Back-End
    Inscrit en
    Août 2004
    Messages
    404
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Back-End

    Informations forums :
    Inscription : Août 2004
    Messages : 404
    Points : 194
    Points
    194
    Par défaut
    J'avais oublié de preciser que je fais un set_time_limit(900) avant l'upload en ftp.

    Si je fais un upload en HTTP avant, et un en FTP, veuillez alors m'expliquer alors comment faire ...
    Il faut bien que je recupere le fichier choisi depuis le formulaire non ?

    Merci à tous,
    Fabrice

  6. #6
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    ce que vuet dire Kioob, c'est que si ton serveur FTP est sur le même PC que le serveur HTTP, autant utiliser le système de fichier local plutôt que le FTP...
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag (en bas)

  7. #7
    Membre habitué
    Avatar de __fabrice
    Homme Profil pro
    Développeur Back-End
    Inscrit en
    Août 2004
    Messages
    404
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Back-End

    Informations forums :
    Inscription : Août 2004
    Messages : 404
    Points : 194
    Points
    194
    Par défaut
    Bon, et bien j'ai rajouté çà :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        set_time_limit(900) ; // => 15 minutes
        ini_set("upload_max_filesize","5000000");
        ini_set("post_max_size","5000000");
        ini_set("memory_limit","5000000");
    Mais çà ne change rien, j'ai ce message :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Warning: error opening none in
    sur le :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $upload = ftp_put($conn_id, $destination_file, $file_to_upload, FTP_BINARY);
    La variable $file_to_upload ($file_to_upload = $_FILES['fichierftp']['tmp_name'];) est vide ...

    Fabrice

  8. #8
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        ini_set("upload_max_filesize","5000000");
        ini_set("post_max_size","5000000");
        ini_set("memory_limit","5000000");
    ceci est à faire AVANT l'upload, en fait, ces valeurs ne sont pas modifiables avec ini_set, il faut les modifier avec un htaccess (phpvalue nom_de_la_conf valeur) ou dans le php.ini directement, parce qu'elle sont prises en compte alors qu'aucun script n'est encore lancé...
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag (en bas)

  9. #9
    Nouveau Candidat au Club
    Inscrit en
    Juin 2006
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Bonjour,

    Me concernant j'ai un problème similaire, mais pour lequel, à priori, les liens indiqués ne le concerne pas puisque j'opte pour un upload ftp.
    J'ai une appli tournant en local qui lorsque des fichier d'un type précis procède à une traduction puis à l'envoi (ftp_put) sur serveur ftp, mais durant l'envoi ça bloque assez fréquemment et apache plante (apache a provoqué une défaillance de page dans php'ts.dll). Il y a 7 fichiers totalisant 10mo et le plus volumineux fait 4-5mo, 1 fois par jour un fichier de 6-8 mo en plus.
    Il arrive même que les fichiers ne soient envoyés que partiellement, encore plus embêtant qu'un plantage...

    Les variables :
    # upload_max_filesize
    # post_max_size
    n'ont vraisemblablement pas d'influence puisque concerne l'envoi http.

    En revanche pensez-vous que memory_limit puisse résoudre mon souci..? D'ailleurs y'a t'il un moyen de connaître à l'instant t la mémoime "consommer" par le script, ce qui me permettrait de voir si effectivement la mémoire occupée est en cause..?

    Merci d'avance

    Ju

Discussions similaires

  1. Traitement des gros fichiers avec VBA sous MsACCESS
    Par GBAGO dans le forum VBA Access
    Réponses: 1
    Dernier message: 07/11/2008, 10h48
  2. Comment travailler avec des gros fichiers
    Par gilles06 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 11/02/2008, 10h44
  3. Copie de fichier par FTP avec un BAT
    Par Thony_7 dans le forum Windows
    Réponses: 11
    Dernier message: 31/05/2007, 16h54
  4. [XML][ENCRYPTION] encoder des gros fichiers avec AES_128
    Par marcsaker dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 29/09/2006, 09h18
  5. Peut-on lire des gros fichiers(100k) avec "TClientSocke
    Par Fred LEM dans le forum C++Builder
    Réponses: 3
    Dernier message: 20/12/2004, 14h41

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