Parcourir un dossier d'un poste client ?

Zax
Eléphanteau du PHP | 22 Messages

18 sept. 2008, 11:34

Bonjour,

Après plusieurs recherches, il me semble qu'il est impossible d'effectuer des opérations telles que parcourir un dossier, lire les données d'une image, etc... si ces éléments sont sur un poste client.
Il est donc impossible de tester la taille d'une image avant que le client ne la soumette ?

J'ai bien compris ? Quelqu'un peut me confirmer ?

Merci d'avance.

Mammouth du PHP | 1353 Messages

18 sept. 2008, 11:42

Bonjour,

Effectivement je pense qu'il n'est pas possible de tester la taille d'une image avant qu'il ne la soumette. En revanche une upload se passe en deux temps et l'image est d'abord transférée sur le serveur dans un emplacement provisoir, et la tu peux vérifier tous les parametres (hauteur, largeur, poids...) avant de "confirmer" l'upload en ajoutant ce fichier sur un répertoire de ton serveur.

En espérant que cela t'aide.
Tell me and I forget. Teach me and I remember. Involve me and I learn.

Petit nouveau ! | 4 Messages

18 sept. 2008, 13:09

En effet on peux se servir des informations de la variable globale $_FILE pour trouver ces infos :
http://www.manuelphp.com/php/reserved.v ... .files.php

un exemple :
http://phpcodeur.net/articles/php/upload

L'exemple ne montre pas directement comment vérifier la taille, mais on vois bien comment avoir le chemin du fichier, et donc lancer un test dessus avant de le déplacer dans notre répertoire.

Zax
Eléphanteau du PHP | 22 Messages

18 sept. 2008, 13:54

Merci pour vos réponses rapides :)

En fait, il s'agirait d'un dossier d'images bien lourdes (c'est pour ça que je parlais aussi de parcourir un dossier client). Donc ça ne m'arrange pas de les uploader pour les tester.

Je vais peut-être m'orienter vers une solution à base de VPN (mais je n'y connais rien du tout, je sens que je vais bien me marrer ;) ).

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

18 sept. 2008, 15:11

Tu ne peux effectivement pas accéder aux informations d'un poste client (et heureusement d'ailleurs, imagine si le simple fait d'ouvrir un site lui permettait de connaitre l'arborescence de ton disque, les logiciels installés, etc. :))

Il n'y a donc malheureusement pas moyen de connaitre la taille d'un fichier avant que celui-ci ne soit uploadé, et si un utilisateur envoi un fichier de 700Mo alors que tu n'autorise qu'1Mo, alors tu vas devoir attendre d'avoir uploadé tout le fichier pour pouvoir le contrôler et le supprimer. (c'est pas tout à fait exact, puisque tu peux limiter la taille des données pouvant être envoyées en post)

Pas certain qu'un vpn puisse t'apporter des solutions, en revanche, si tu as les droits sur ton serveur, envisager un accès ftp pour permettre de déposer des fichiers ? (je ne parle pas des fonction ftp de php, leur usage est tout autre : elle permettent de se connecter depuis le serveur à un serveur ftp, et n'implique pas le client)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Zax
Eléphanteau du PHP | 22 Messages

19 sept. 2008, 09:29

Merci pour la piste FTP, je vais peut-ê^tre creuser dans ce sens. Tout ça m'aide à mieux cerner les contraintes du projet.

Invité
Invité n'ayant pas de compte PHPfrance

19 sept. 2008, 19:08

Ok à bientôt.

ViPHP
AB
ViPHP | 5818 Messages

20 sept. 2008, 04:03

Sinon via http tu peux avertir le visiteur en lui disant que la taille de l'image ne doit pas excéder get_cfg_var('upload_max_filesize')

Ensuite tu as la possibilité de gérer les erreurs de téléchargement (fichiers trop gros en autre) avec
$_FILES['nom_post_file']['error'] etc.