2010-03-12 6 views
0

J'utilise CURL pour télécharger des fichiers sur un service.

actuellement je reçois le contenu du fichier avec $ GLOBALS ["HTTP_RAW_POST_DATA"] puis l'enregistre sur mon serveur. Ensuite, j'utilise CURLOPT_POSTFIELDS avec le chemin complet du fichier. Y a-t-il un moyen d'envoyer le contenu du fichier directement, sans l'enregistrer sur mon serveur, comme si je l'avais sauvegardé?

Ou existe-t-il un moyen de télécharger une photo depuis une application flash vers un album facebook, sans l'enregistrer sur le serveur?

Merci

Répondre

0

Si vous téléchargez des données que vous pouvez envisager d'utiliser le mécanisme de transfert de fichiers en PHP http://php.net/manual/en/features.file-upload.php Il handls automatiquement PHP de téléchargement de fichiers.

Si vous souhaitez rediriger le téléchargement vers un autre (service tiers) sans avoir besoin d'être dans la chaîne de commandes (serveur utilisateur-> tiers), vous pouvez envisager AJAX. AFAIK lorsque vous téléchargez un fichier en utilisant PHP/forms le fichier sera téléchargé dans votre répertoire temporaire PHP et il n'y a aucun moyen d'empêcher cela parce que:
1. Pour accéder au fichier, il doit être sur le serveur (PHP est serveur exécuter ce qui signifie qu'il ne peut pas s'exécuter du côté de l'utilisateur)
2. Je ne crois pas qu'un utilisateur voudra que vous accédiez à ses fichiers sur son ordinateur et que vous ne puissiez pas le faire (Pare-feu, AV), si cela devait arriver sera un problème majeur de sécurité

Comme je l'ai dit plus haut, ce que vous voulez regarder est AJAX (j'ai utilisé jquery et leurs méthodes AJAX sont très simples). Parce que AJAX est un programme d'exécution javascript, il peut fonctionner sur la machine et initier une connexion à n'importe quelle URL. De cette façon, vous pouvez accéder directement au service sans soumettre le fichier à votre serveur.

est ici un téléchargement AJAX exmaple (vous pouvez google pour plus): http://valums.com/ajax-upload/

Hope this helps