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

Langage PHP Discussion :

[Upload] Question sur <input type='file' />


Sujet :

Langage PHP

  1. #1
    Membre confirmé Avatar de Sayrus
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    899
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2005
    Messages : 899
    Points : 570
    Points
    570
    Par défaut [Upload] Question sur <input type='file' />


    J'aurais une petite question à vous poser concernant la balise HTML

    <input type='file' />

    Lorsque l'on poste son formulaire, cette balise upload automatiquement le fichier sur le serveur.

    Le seul problème, c'est que j'utilise la class ftp de PHP pour uploader mes fichiers...

    Je n'ai juste besoin que de la navigation de cette input (Parcourir...)

    Pour qu'il ne garde en mémoire que le chemin absolu du fichier, et non qu'il me l'upload...

    Comment puis-je faire pour adapter ceci?


    Autre petit problème:

    Quand j'upload un fichier de 30Mo avec ftp_put(), il se bloque au bout de 14Mo sans aucun message d'erreur...

    Est-ce en rapport avec la config apache? Que faire?

    (Le but est d'uploader via interface web des fichiers volumineux de maximum 100Mo)


    Merci à vous.

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    Le formulaire est rempli par le client et le code PHP exécuté par le serveur. Donc la connexion FTP sera établie depuis le serveur et en aucun cas depuis le client. Sommes-nous d'accord ? (à moins d'être en local ...)

    Par ailleurs, j'ai lu dans d'autres posts que les champs de type file ne donnaient pas le chemin complet (dépend du navigateur ?), ce qui d'un côté n'est pas plus mal puisque le serveur n'a pas besoin de cette information. Toutefois, il me semble que si on supprime la partie enctype="multipart/form-data" de la balise form le fichier n'est plus envoyé ($_FILES) mais qu'on en récupère juste le nom ($_POST).

    Enfin, quant au blocage vous avez probablement un message d'erreur qui peut être lié au temps maximum d'exécution du script. A vous de nous le dire

  3. #3
    Membre confirmé Avatar de Sayrus
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    899
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2005
    Messages : 899
    Points : 570
    Points
    570
    Par défaut
    Effectivement si je supprime la balise enctype, juste le nom du fichier m'est retourné.

    N'y a-t-il pas moyen de récupérer le chemin absolu de l'emplacement de ce fichier?

    Par contre pour le timeout c'est trouvé:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     ftp_set_option ( $conn_id  ,  FTP_TIMEOUT_SEC , 3600  )
    Par défaut le timeout était de 90 secondes. Il ne faut pas aller bidouiller dans apache, je peux donc laisser le timeout apache à 30sec.

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    Citation Envoyé par Sayrus
    N'y a-t-il pas moyen de récupérer le chemin absolu de l'emplacement de ce fichier?
    Pas en simple HTML/PHP et mes compétences s'arrête là

    Citation Envoyé par Sayrus
    Par défaut le timeout était de 90 secondes. Il ne faut pas aller bidouiller dans apache, je peux donc laisser le timeout apache à 30sec.
    Vous avez un message d'erreur ? Je pense toujours que c'est celui de PHP (max_execution_time) qui pose problème (Apache en possède également un de 5 minutes par défaut).

  5. #5
    Membre confirmé Avatar de Sayrus
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    899
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2005
    Messages : 899
    Points : 570
    Points
    570
    Par défaut
    Non justement je n'ai pas de message d'erreur, ce qui est étonnant car je suppose qu'un message d'erreur apparaitrait venant du max execute time de php ou de apache. Enfin je peux me tromper?

  6. #6
    Membre confirmé Avatar de Sayrus
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    899
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2005
    Messages : 899
    Points : 570
    Points
    570
    Par défaut
    Et ben il y a du nouveau...

    Je parviens à uploader mon fichier de 32Mo, où bout du transfert, l'erreur "MAX 30 sec execution time" apparait...

    Donc je suppose que c'est dans apache que je dois modifier ça

  7. #7
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    Citation Envoyé par Sayrus
    Donc je suppose que c'est dans apache que je dois modifier ça
    La directive max_execution_time comme je l'ai indiqué tout à l'heure. Vous pouvez la modifier dans le fichier php.ini mais cette modification impactera tous les scripts. Il est possible de la modifier de manière ponctuelle avec la fonction ini_set. (si vous en avez le droit)

    Note : cette directive peut éventuellement être outrepassée dans le fichier de configuration d'Apache via les directives php_admin_value et php_value ou éventuellement par htaccess (php_value).

  8. #8
    Membre confirmé Avatar de Sayrus
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    899
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2005
    Messages : 899
    Points : 570
    Points
    570
    Par défaut
    J'ai utilisé la directive init_set()

    Un grand merci.

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

Discussions similaires

  1. [upload d'un fichier] Bloquer sur l'input type file VBA
    Par awesome33 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 18/07/2014, 13h15
  2. document.getElementById().click() avec firefox sur un input type file
    Par nakata77 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 20/08/2010, 09h53
  3. Filtrage sur un input type file
    Par nakata77 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 19/08/2010, 17h47
  4. Information sur balise input type file
    Par MANU_2 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 9
    Dernier message: 19/09/2007, 22h35
  5. Réponses: 4
    Dernier message: 22/08/2006, 15h16

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