Précédent   Forum des professionnels en informatique > PHP > Outils
Outils Forum d'entraide sur les outils pour développeurs PHP : EDI, installation, administration... Avant de poster : FAQ outils, toutes les FAQ PHP et les comparatifs
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/06/2007, 20h55   #1
Membre régulier
 
Avatar de HWICE
 
Homme
Développeur informatique
Inscription : décembre 2006
Messages : 246
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Canada

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : décembre 2006
Messages : 246
Points : 70
Points : 70
Par défaut Faire un FTP par php

Bonjour a tous

J'aimerai savoir si y a un moyen de faire des upload de fichier par php. je veux faire un interface graphique pour que mes cliens puissent m'envoyer des fichiers directement du web(avec une page php). Et ça peut etre des gros fichier comme des PSD(Photoshop) ou des AI(Illustrator). Une sorte de FTP. Mais juste pour les upload. Tout ca protégé par .htaccess ou par ssl

merci de vos reponse
HWICE est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/06/2007, 21h25   #2
Membre régulier
 
Avatar de L8O8L
 
Inscription : janvier 2007
Messages : 148
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 148
Points : 79
Points : 79
hé oui c'est possible, y'a plein de scripts proposé sur le net...

Mais perso j'avoue que même avec ces scripts je n'ai jamais reussi, mais c'est possible j'en suis sur
L8O8L est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/06/2007, 21h27   #3
Membre régulier
 
Avatar de L8O8L
 
Inscription : janvier 2007
Messages : 148
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 148
Points : 79
Points : 79
J'ai meme trouvé ca... http://matt.phptest.free.fr/php_upload_to_my_ftp/

Maintenant je n'ai pas testé
L8O8L est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/06/2007, 22h12   #4
Membre régulier
 
Avatar de HWICE
 
Homme
Développeur informatique
Inscription : décembre 2006
Messages : 246
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Canada

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : décembre 2006
Messages : 246
Points : 70
Points : 70
Merci je vais jeter un oeil la dessu, a premiere vue sa d'laire compliquer a configurer mais je croit que je vais m'en sortir.
Toi tu bloque ou normalement?
on peut p-e s'aider

J'ai besion d'un truc comme ca, alors je n'arreterais pas de chercher!!!

HWICE est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/06/2007, 10h21   #5
Membre régulier
 
Avatar de L8O8L
 
Inscription : janvier 2007
Messages : 148
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 148
Points : 79
Points : 79
A vrai dire moi j'ai abandonnée l'idée...
L8O8L est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/06/2007, 16h29   #6
Membre régulier
 
Avatar de HWICE
 
Homme
Développeur informatique
Inscription : décembre 2006
Messages : 246
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Canada

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : décembre 2006
Messages : 246
Points : 70
Points : 70
I got it!!!
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
<?php
$ftp['maxf'] = 3; // Nombre de champs de téléchargement
$ftp['maxs'] = 10*1024*1024*10; // Taille maximale des fichiers (ex: 100Mo)
$ftp['user'] = 'USER'; // Nom du compte ftp & Login
$ftp['pass'] = 'PASS'; // Mot de passe d'accès au compte
$ftp['host'] = 'FTP'; // Adresse du serveur ftp
$ftp['dest'] = 'Ftp'; // Dossier de destination sur le serveur
$ftp['mode'] = FTP_BINARY; // Mode de transmission : FTP_BINARY ou FTP_ASCII
 
set_time_limit(0);
 
//===============================================================================
if(isset($_POST['valider'])){
 
// Test du nombre de fichiers postés //
$nbr=0;
for($x=0;$x<$ftp['maxf'];$x++)
if(!empty($_FILES['userfile']['name'][$x])) $nbr++;
if($nbr<=0) die("Aucun fichier spécifié !<br/>");
 
// Connexion au server ftp
$handle=@ftp_connect($ftp['host'],21,90);
if($handle) {
$res=@ftp_login($handle,$ftp['user'],$ftp['pass']);
if($res) {
@ftp_pasv($handle,true);
 
// Création du dossier de destination //
if(!empty($ftp['dest'])) {
if(substr($ftp['dest'],strlen($ftp['dest'])-1,1)=='/') $ftp['dest'].='/';
$dir=explode('/',$ftp['dest']);
$ftp['dest']='';
for($x=0;$x<count($dir);$x++) {
$ftp['dest'].=$dir[$x].'/';
$erg=@ftp_chdir($handle,$dir[$x]);
if(!$erg){
@ftp_mkdir($handle,$dir[$x]);
$erg=@ftp_chdir($handle,$dir[$x]);
if(!$erg) die("Dossier \"".$ftp['dest']."\" introuvable !<br/>");
}
}
}
} else die("Login invalide !<br/>");
} else die("Connexion vers host échouée ! <br/>");
 
// Téléchargement des fichiers //
for($x=1;$x<=$ftp['maxf'];$x++) {
$errorhttp=@$_FILES['userfile']['error'][($x-1)];
$filenamehttp=@$_FILES['userfile']['name'][($x-1)];
$typehttp=@$_FILES['userfile']['type'][($x-1)];
$sizehttp=@$_FILES['userfile']['size'][($x-1)];
$tmpfilehttp=@$_FILES['userfile']['tmp_name'][($x-1)];
if (($errorhttp>0)&&(!empty($filenamehttp))) {
switch ($errorhttp){
case 1: echo "Erreur : Le fichier n°$x est trop grand !<br/>";break;
case 2: echo "Erreur : Le fichier n°$x est trop grand !<br/>";break;
case 3: echo "Erreur : Transfert du fichier n°$x interrompu !<br/>";break;
case 4: echo "Erreur : Le fichier n°$x est vide !<br/>";break;
}
} else {
if((!empty($filenamehttp))&&($sizehttp>0)) {
if($sizehttp<=$ftp['maxs']){
if(@is_uploaded_file($tmpfilehttp)) {
if(function_exists('ftp_nb_put')){
$res=@ftp_nb_put($handle,$filenamehttp,$tmpfilehttp,$ftp['mode']);
while($res==FTP_MOREDATA) $res=@ftp_nb_continue($handle);
} else $res=@ftp_put($handle,$filenamehttp,$tmpfilehttp,$ftp['mode']);
 
if($res) {
if(function_exists('ftp_chmod'))
@ftp_chmod($handle,0777,$filenamehttp);
if(ftp_size($handle,$filenamehttp)==$sizehttp) {
echo "Fichier n°$x uploadé : ".basename($filenamehttp).
" (".round(max($sizehttp,1024)/1024)." ko)<br/>";
} else echo "Erreur : fichier n°$x introuvable sur le serveur !<br/>";
} else echo "Erreur de téléchargement du fichier n°$x !<br/>";
 
} else echo "Erreur de téléchargement du fichier n°$x !<br/>";
} else echo "Erreur : Le fichier n°$x est trop grand !<br/>";
} // else echo "Le fichier n°$x est introuvable ou vide !<br/>";
}
}
@ftp_close($handle);
die("Opération terminée.<br/>");
}
 
//===============================================================================
echo '<form method="post" enctype="multipart/form-data"'.
' onSubmit="document.getElementById(\'valider\').style.visibility=\'hidden\';">'.
'<input type="hidden" name="MAX_FILE_SIZE" value="'.$ftp['maxs'].'"/>';
for($x=1;$x<=max($ftp['maxf'],1);$x++)
echo ' Fichier n°'.$x.' : <input type="file" name="userfile[]" size="20" multiple/><br/>';
echo '<br/><input type="submit" name="valider" value="Envoyer..."/></form>';
 
 
//===============================================================================
?>
je suis en train de faire des tests pour voir jusqu'a combien de Mo possible a transferer. Le seul petit bugs que jai vue c'est quand tu le configure, dans quel repertoire placer le fichier uploader. Jai bidouiller 5 min pour trouver c'est pas si pire.
HWICE est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/06/2007, 16h31   #7
Membre régulier
 
Avatar de HWICE
 
Homme
Développeur informatique
Inscription : décembre 2006
Messages : 246
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Canada

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : décembre 2006
Messages : 246
Points : 70
Points : 70
Ah oui c'est vrai une autre chose de negatif, le transfere est lent mais aumoin ca marche
HWICE est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/06/2007, 21h02   #8
Membre régulier
 
Avatar de HWICE
 
Homme
Développeur informatique
Inscription : décembre 2006
Messages : 246
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Canada

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : décembre 2006
Messages : 246
Points : 70
Points : 70
après quelque test je me suis rendu compte que l,on est limité dans le upload a 3 Mo, je ne sais pas si c'est acause de mon hébergement ou juste le program. Je suis perdu!
HWICE est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/06/2007, 15h40   #9
Membre régulier
 
Avatar de HWICE
 
Homme
Développeur informatique
Inscription : décembre 2006
Messages : 246
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Canada

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : décembre 2006
Messages : 246
Points : 70
Points : 70
Bon apres avoir chercher partout, lu plein de forum, je me suis rendu compte que le php ne suporte pas le ftp. Il le fait mais pas efficace. La command php envoie le fichier a uploader par un post, le fichier va se placer dans un dossier tmp. Apres que le fichier soit toute poster(u/l dans le fichier tmp) la php l'envoie par ftp.


client---»php* ----»ftp**

* le protocole de php(html) envoie les fichier en 1 seul bloque
**tandis que le protocole du ftp envoie les fichier en bloque, en gros il divise le fichier en plusieur tit parti qui envoie

un solution... perl!!! on peut transfere jusqua 1,2 gig WOW
je travail la dessu et je vous en reparle
HWICE est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h45.


 
 
 
 
Partenaires

Hébergement Web