upload : changer le repertoire temp

cleo
Invité n'ayant pas de compte PHPfrance

04 mai 2006, 17:23

Bonjour à tous,

je suis très contente d'être tombé sur ce forum qui répond à 99% à mon problème.

Reste le petit 1%

Je m'explique, j'aimerai faire une page web qui donne la possibilité aux utilisateurs de faire l'upload de fichier sur mon serveur.
Avec toute la doc du site sur ce sujet, je pense pouvoir m'en sortir.

Par contre je n'arrive pas à trouver, ou à comprendre comment faire pour changer le répertoire temporaire par défaut sans modifier le php.ini.

Est ce que c'est possible ?
J'aimerai que les fichiers temporaires aillent dans un répertoire donnée.

Merci de votre aide.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

04 mai 2006, 17:25

Est-ce que tu sais que le répertoire contenant les fichier temporaire ne doit pas être utilisé pour stocker de manière prolongée les fichier ?

C'est d'ailleurs pourquoi, lors d'un upload, on déplace le fichier uploadé ;)
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Mammouth du PHP | 19672 Messages

04 mai 2006, 17:26

Par défaut, le répertoire temporaire est, comme son nom l'indique, un répertoire de stockage pour une durée de temps limitée ; de là, tu vas devoir le déplacer et éventuellement le traiter en cours de route vers un répertoire définitif: ça, c'est ce que tu vas faire dans le code avec move_uploaded_file()

Tu n'as donc pas besoin de modifier le chemin vers le répertoire temporaire, PHP saura très bien où aller chercher ton fichier et le mettra là où tu lui indiqueras de le mettre.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

BaLiSTiK
Invité n'ayant pas de compte PHPfrance

04 mai 2006, 17:27

tu peux commencer par un formulaire d'upload sur une page html :

Code : Tout sélectionner

<FORM method="POST" action="http://url.../up.php" ENCTYPE="multipart/form-data"> <INPUT type=hidden name=MAX_FILE_SIZE VALUE=20000000> <input type="file" name="monfichier"> <input type="submit"/> </form>
et la page http://.../up.php a alors ce code :
<?php 
    $repertoireDestination = "./"; // -> met le repertoire dans lequel tu veux uploader
    $nomDestination        = $_FILES["monfichier"]["name"];


    // Pour raison de sécurité nous ajouterons aux fichiers
    // portant une extension .php .php3, l'extension .txt
    if (eregi(".php", $nomDestination)) {
        $nomDestination .= ".txt";
    }
    
    if (is_uploaded_file($_FILES["monfichier"]["tmp_name"])) {
        if (rename($_FILES["monfichier"]["tmp_name"],
                   $repertoireDestination.$nomDestination)) {
                  } else {
            echo "Le déplacement du fichier temporaire a échoué".
                 " vérifiez l'existence du répertoire ".$repertoireDestination;
       }          
    } else {
       echo "Le fichier n'a pas été uploadé (trop gros ?)";
    }
?>
j ai utiliser ce code source pour uploader des fochier de 20Mo et ça fonctionne :)

-> http://balistik35.free.fr/html/index.ph ... fr/bordel/
pour l'affichage des fichier la c est autre echose encore =)

Mammouth du PHP | 19672 Messages

04 mai 2006, 17:30

lol :
- 16h23, cleo poste son message;
- 16h27, il y a déjà trois réponses en tir groupé...

Un dessert avec ça ? :langue:
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

cleo
Invité n'ayant pas de compte PHPfrance

04 mai 2006, 17:35

merci pour ces réponses rapides.

Le probleme qui se pose, c'est que je n'ai pas assez de place sur le serveur web qui va accueillir le site.

Les fichiers uploader seront effectivement bien copié mais vers un autre serveur ( de stockage si on peut dire)

Ce que je crains ce que mes fichiers temporaires ne tienne pas sur le serveur. Il s'agira de documents txt, pdf, jpeg ou vidéo.

En fait je me demande si ca va passer, sachant que les fichiers qui seront uploader seront bien plus lourd que l'espace disque disponible sur le serveur web.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

04 mai 2006, 17:35

En plus, on a réussi à faire un tir groupé 25,26 et 27 :langue:

Cleo, est-ce que tu sais qu'il y a une limite à la taille des fichiers uploadés ?
max_upload_size dans le fichier php.ini
Modifié en dernier par zeus le 04 mai 2006, 17:37, modifié 1 fois.
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

cleo
Invité n'ayant pas de compte PHPfrance

04 mai 2006, 17:37

c vrai que c'est assez remarquable une tel réactivité, je suis épatée :-)

Mammouth du PHP | 19672 Messages

04 mai 2006, 17:50

Le problème qui risque de se poser, c'est la transmission vers le serveur distant, j'ai un léger doute... si tu es sur dédié, ça doit pouvoir se configurer, mais en mutualisé, tu auras certainement des blocages :-k
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Mammouth du PHP | 1967 Messages

04 mai 2006, 19:08

Pourquoi ne pas mettre juste le formulaire d'upload sur l'autre serveur qui lui à la place qu'il faut

??
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone du rubik's cube

cleo
Invité n'ayant pas de compte PHPfrance

05 mai 2006, 09:36

Bonjour,
Le problème qui risque de se poser, c'est la transmission vers le serveur distant, j'ai un léger doute... si tu es sur dédié, ça doit pouvoir se configurer, mais en mutualisé, tu auras certainement des blocages Think
Oui, j'ai aussi des doutes la dessus, mais c'est plus le sentiment que ce procédé n'ai pas tres conventionnel. Tu peux m'expliquer qu'est ce que tu entend par dédié et mutualisé ?
Pourquoi ne pas mettre juste le formulaire d'upload sur l'autre serveur qui lui à la place qu'il faut ?
Alors c'est peut etre idiot comme question, mais si je met le formulaire d'upload sur l'autre serveur, est ce que je ne dois pas aussi y installer Apache ?

Merci de votre aide.

Mammouth du PHP | 19672 Messages

05 mai 2006, 10:15

-1- mutualisé/dédié :
-- un serveur mutualisé, c'est comme les serveurs de pages personnelles de free.fr par exemple : tous ceux qui y ont un site se partagent le même serveur et les ressources de ce serveur. Personne n'a accès aux paramètres de configuration qui sont gérés par l'administration de free.fr;
-- Un serveur dédié, c'est un serveur que tu loues à un hébergeur pour ton usage exclusif : il n'y a que ce que tu y mets et personne d'autre n'y a accès en dehors de toi et de l'administration de l'hébergeur. Tu ajustes toi-même les paramètres de configuration système selon tes propres critères. Inconvénient : ça coûte beaucoup plus cher.

-2- Installer Apache sur le second serveur ? Oui, et pas juste Apache, PHP aussi puisque le formulaire devrait pouvoir être traité sur ce serveur. L'idée n'est pas mauvaise et tu pourrais avoir des communications entre les deux serveur se renvoyant les liens.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

ViPHP
ViPHP | 2144 Messages

05 mai 2006, 13:05

et par ftp ?

Mammouth du PHP | 19672 Messages

05 mai 2006, 13:38

Voir la doc sur le sujet, tu pourrais effectivement résoudre de cette manière... à condition que tu aies une adresse ftp sur le second serveur.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

cleo
Invité n'ayant pas de compte PHPfrance

05 mai 2006, 15:43

Je pense que je vais m'orienter vers la solution du FTP.
Bon je n'y connais rien dans ce domaine, ca sera l'occasion d'apprendre.

Merci pour vos réponses.

Cléo