Page 1 sur 2

upload : changer le repertoire temp

Posté : 04 mai 2006, 17:23
par cleo
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.

Posté : 04 mai 2006, 17:25
par zeus
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é ;)

Posté : 04 mai 2006, 17:26
par Cyrano
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.

Posté : 04 mai 2006, 17:27
par BaLiSTiK
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 =)

Posté : 04 mai 2006, 17:30
par Cyrano
lol :
- 16h23, cleo poste son message;
- 16h27, il y a déjà trois réponses en tir groupé...

Un dessert avec ça ? :langue:

Posté : 04 mai 2006, 17:35
par cleo
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.

Posté : 04 mai 2006, 17:35
par zeus
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

Posté : 04 mai 2006, 17:37
par cleo
c vrai que c'est assez remarquable une tel réactivité, je suis épatée :-)

Posté : 04 mai 2006, 17:50
par Cyrano
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

Posté : 04 mai 2006, 19:08
par Spols
Pourquoi ne pas mettre juste le formulaire d'upload sur l'autre serveur qui lui à la place qu'il faut

??

Posté : 05 mai 2006, 09:36
par cleo
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.

Posté : 05 mai 2006, 10:15
par Cyrano
-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.

Posté : 05 mai 2006, 13:05
par iclo
et par ftp ?

Posté : 05 mai 2006, 13:38
par Cyrano
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.

Posté : 05 mai 2006, 15:43
par cleo
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