Upload sans formulaire et sans FTP...

Le
webwap
Bonjour à tous,

Je vous soumets un petit problème pour lequel je suis à court d'idée :
il s'agit de permettre à des utilisateurs d'un site web d'uploader des
fichiers dans un répertoire déterminé, mais sans formulaire HTML. En
effet, l'utilisateur choisit les fichiers à uploader dans un programme
windows (EXE).

La solution la plus évidente serait d'inclure un client FTP dans ce
programme, mais cela n'est pas envisageable car les utilisateurs ne
doivent pas avoir accès à l'espace web. L'hébergement (serveur
mutualisé) ne permet pas de faire du multi-FTP, je ne peux donc pas
créer un accès FTP qui serait limité au répertoire de destination.

Est-ce possible pour un script PHP sur le serveur de récupérer un
fichier transmis par le programme de l'utilisateur (avec une
identification user/pass) ? Avez-vous des suggestions (compatibles
avec un hébergement mutualisé "classique") ?

Merci d'avance pour votre aide.

Luca.
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Paul Delannoy
Le #576115
SaRdiNe a écrit:
Bonjour à tous,

Je vous soumets un petit problème pour lequel je suis à court d'idée :
il s'agit de permettre à des utilisateurs d'un site web d'uploader des
fichiers dans un répertoire déterminé, mais sans formulaire HTML. En
effet, l'utilisateur choisit les fichiers à uploader dans un programme
windows (EXE).

La solution la plus évidente ...
serait que ce programme lance lui même un dialogue avec un script ad'hoc

du serveur, pour que le(s) fichier(s) choisis soient uploadés. Si tu ne
peux pas utiliser FTP, peut être peux tu utiliser DAV (support des
'Dossiers Web' de Windows). ?

Merci d'avance pour votre aide.
de rien


Akades
Le #575822
SaRdiNe wrote:

Bonjour à tous,

Bonsoir,


il s'agit de permettre à des utilisateurs d'un site web d'uploader des
fichiers dans un répertoire déterminé, mais sans formulaire HTML.


Ca me paraît pas vraiment possible d'utiliser autre chose qu'un formulaire
ou un acces FTP. De toutes facons, les utilisateurs sont censés accéder à
ton espace web.

En effet, l'utilisateur choisit les fichiers à uploader dans un programme
windows (EXE).


Le fait d'utiliser un programme client fournis en partie la réponse à ton
problème à mon avis. Mais avec la solution que je vais te proposer dans les
lignes qui suivent, ça doit pouvoir fonctionner aussi en PHP.

La solution la plus évidente serait d'inclure un client FTP dans ce
programme, mais cela n'est pas envisageable car les utilisateurs ne
doivent pas avoir accès à l'espace web.


Ils y sont bien obligés d'y accéder à ton espace web si le but de ton
programme c'est l'upload de fichiers par des ultilisateurs variés.

Est-ce possible pour un script PHP sur le serveur de récupérer un
fichier transmis par le programme de l'utilisateur (avec une
identification user/pass) ?


Non, pas sans utiliser le protocole HTTP, ce qui revient à faire une simple
page web. Dans le cas ton programme windows (en quel language au fait ?) tu
peux utilisé un Activex (VB) ou un Composant (Delphi) pour dialoguer en
HTTP.

Bref, la solution qui me paraît la plus adaptée, serait de simuler un
environnement multi-utilisateur pour gérer l'accès à ton espace. En clair,
tu fait une gestion de membres et tu utilises en tâche de fond ton
login/passwd pour uploader.

Merci d'avance pour votre aide.


J'espère que ça t'aideras.

Luca.


David

Samuel KABAK
Le #575823
Bonjour,

J'avais commencé à développer un programme en C qui s'appel IFilePoster qui
réalise cela :
IFilePoster prend en paramètres (1) une adresse de page web (2) un nom
d'utilisateur (3) un mot de passe (4) un fichier.
IFilePoster poste vers la page web en "multipart/form-data" (1)
l'utilisateur, (2) le md5 du mot de passe (3) le fichier.

J'avais réalisé tous les modules et fait les tests. Il ne restait qu'à
mettre en forme le tout (c'est à dire créer la commande en ligne, le passage
de paramètres et le retour des codes d'erreur). Mais je me suis arrêté car
je pensais qu'il n'y aura pas d'acheteurs. (Aujourd'hui, on veut du gratuit.
Et moi je n'ai plus de temps à perdre)

Si j'ai 5 acheteurs (au prix de 2 tickets de ciné la copie) je le finalise.

Sinon, avec winsock, le protocole http et l'algorithme md5 n'importe quel
étudiant en informatique peut le faire.

Du côté php, il n'y a aucun problème à exploiter ça.

Samuel
www.codeas.net


"SaRdiNe" news:
Bonjour à tous,

Je vous soumets un petit problème pour lequel je suis à court d'idée :
il s'agit de permettre à des utilisateurs d'un site web d'uploader des
fichiers dans un répertoire déterminé, mais sans formulaire HTML. En
effet, l'utilisateur choisit les fichiers à uploader dans un programme
windows (EXE).

La solution la plus évidente serait d'inclure un client FTP dans ce
programme, mais cela n'est pas envisageable car les utilisateurs ne
doivent pas avoir accès à l'espace web. L'hébergement (serveur
mutualisé) ne permet pas de faire du multi-FTP, je ne peux donc pas
créer un accès FTP qui serait limité au répertoire de destination.

Est-ce possible pour un script PHP sur le serveur de récupérer un
fichier transmis par le programme de l'utilisateur (avec une
identification user/pass) ? Avez-vous des suggestions (compatibles
avec un hébergement mutualisé "classique") ?

Merci d'avance pour votre aide.

Luca.


Laurent Bossavit
Le #575825
Est-ce possible pour un script PHP sur le serveur de récupérer un
fichier transmis par le programme de l'utilisateur (avec une
identification user/pass) ? Avez-vous des suggestions (compatibles
avec un hébergement mutualisé "classique") ?


C'est parfaitement possible et couvert par la RFC 1867, qui détaille ce
qu'un programme client - pas nécessairement un navigateur Web - doit
faire pour transmettre un fichier par HTTP. Du côté serveur, ça va se
programmer exactement comme un upload classique. Du côté client, il
faudra évidemment avoir accès au source de l'exécutable Windows, et
programmer la transmission du fichier au serveur en s'appuyant sur HTTP.
C'est moins classique, donc il n'y aura pas nécessairement de code libre
de droits sur le Net pour le faire - il faudra sans doute le
développer...

Laurent
http://bossavit.com/
http://bossavit.com/thoughts/

Antoun
Le #576114
PHP ne tourne que sur le serveur. Donc, par définition, il ne peut
t'être d'aucune utilité pour envoyer le truc sur le serveur...

Je pense que ton .exe doit pouvoir émuler le fonctionnement d'un
formulaire HTML avec un champ upload, mais je n'ai jamais fait ça.

Sinon, le plus simple reste encore que tu fasses du FTP avec ton .exe,
en supposant que c'est lui qui gère la restriction d'accès.

Antoun
Marc
Le #575557
SaRdiNe wrote:


Est-ce possible pour un script PHP sur le serveur de récupérer un
fichier transmis par le programme de l'utilisateur (avec une
identification user/pass) ? Avez-vous des suggestions (compatibles
avec un hébergement mutualisé "classique") ?

Merci d'avance pour votre aide.

Luca.


il faudrait que tu essaie de realiser des choses avec la commandes
telnet et tu verras que le protocole HTTP n'est pas si compliqué
que cela et que tu peux realiser facilement un client HTTP embarqué
dans un binaire (Windows ou Linux).

d'autre part il existe des clients HTTP sous Linux gratuits avec
sources. De meme il doit exister des librairies orientées HTTP.
De toute facon il suffit d'ouvrir une socket et de discuter
dans le langage HTTP qui est un protocole ASCII pas tres compliqué.

Petit exemle avec la commande telnet (j'ai oublié les details)

telnet www.server.net 80
GET /index.php HTTP/1.1
<rc>
<rc>

c'est le hello-world du protocole http. Il ne te reste plus qu'a
decouvrir comment fonctionne l'upload en lisant la doc du RFC ;
(bonne lecture c'est pas tres digest, mas tout y est).

Les autres reponses a part une sont déconcertantes, quel bruit
inutile.

julien.gautier
Le #575558
Antoun
PHP ne tourne que sur le serveur. Donc, par définition, il ne peut
t'être d'aucune utilité pour envoyer le truc sur le serveur...



petite précision :

j'ai un peu le même problème...

Je voudrais pouvoir envoyer des fichiers vers un serveur, par le biais
d'un script tournant sur le même serveur, et le tout en ftp (because :
gros fichiers à envoyer).

Publicité
Poster une réponse
Anonyme