Comment faire pour télécharger une image à partir d'une URL vers un répertoire local?
Je suis à l'aide de C++ sans .NET sur Win32, comment puis-je télécharger une image sur HTTP à partir d'un site web sans avoir à ré-inventer la roue? Est-il une API ou d'une bibliothèque qui fournit une seule fonction pour faire cela?
http://mywebsite/file.imgext --> C:\path\to\dir\file.imgext
Quand la plupart des réponses ne vous satisfait pas, le plus probablement la question n'est pas posée correctement. De vérifier cela avant de demander: catb.org/~esr/faqs/smart-questions.html
Ce qui vous fait penser que je suis impoli? Je suis juste à la recherche d'une solution qui fais me faire ré-inventer la roue. Écrit 20 lignes est de réinventer la roue, l'écriture de 6 lignes n'est pas. Vous n'avez pas à vous défendre... Ce n'est pas mon intention d'être rude pour vous.
vous avez dit toute réponse raisonnable, dont certains avec l'argument que vous le savaient, ou essayé. Donc, la question n'est pas de corriger de lui-même - autant d'informations que vous mettez dans le Q, comme les réponses utiles que vous allez recevoir (vérifier le lien, les valeurs beaucoup de lecture).
Va lire le lien dans mon temps libre, je dois dire que je ne veux pas ré-inventer le processus d'établissement d'une connexion, la communication, le téléchargement et puis les stocker à l'aide d'un tampon de flux de l'écrivain.
lorsque vous ne l'utilisez pas .bibliothèques net qu'attendez-vous? vous devez configurer la connexion et faire des choses un peu plus manuellement.
Ce qui vous fait penser que je suis impoli? Je suis juste à la recherche d'une solution qui fais me faire ré-inventer la roue. Écrit 20 lignes est de réinventer la roue, l'écriture de 6 lignes n'est pas. Vous n'avez pas à vous défendre... Ce n'est pas mon intention d'être rude pour vous.
vous avez dit toute réponse raisonnable, dont certains avec l'argument que vous le savaient, ou essayé. Donc, la question n'est pas de corriger de lui-même - autant d'informations que vous mettez dans le Q, comme les réponses utiles que vous allez recevoir (vérifier le lien, les valeurs beaucoup de lecture).
Va lire le lien dans mon temps libre, je dois dire que je ne veux pas ré-inventer le processus d'établissement d'une connexion, la communication, le téléchargement et puis les stocker à l'aide d'un tampon de flux de l'écrivain.
lorsque vous ne l'utilisez pas .bibliothèques net qu'attendez-vous? vous devez configurer la connexion et faire des choses un peu plus manuellement.
OriginalL'auteur Tom Wijsman | 2009-04-14
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser cURLpp
Je havn'pas encore utilisé, mais example20 ressemble à cela pourrait résoudre votre problème.
Pourquoi avait-il donné des résultats dans des accidents'? Avec la façon dont les plus couramment utilisées, la bibliothèque est, je suppose que le bug est sur votre côté, pas le leur.
Si vous êtes à l'aide de libcurl comme une DLL win32, vous DEVEZ utiliser le CURLOPT_WRITEFUNCTION si vous définissez CURLOPT_WRITEDATA - ou vous ferez l'expérience d'accidents. ==> me Ramène à ré-inventer la roue.
Marqué cette réponse est la solution car il exige de 6 lignes (par écrit directement à un ofstream) et je suppose que cela fonctionne de la croix-plate-forme la plus récente de l'. 🙂
OriginalL'auteur leen
Api WinInet sont plus faciles que vous ne le pensez
Voici une complète console win32 programme. Peut être construit avec VS 2010 Express et descendre le chargement de windows SDK pour obtenir WinInit.
OriginalL'auteur user672951
Si vous souhaitez une solution de facilité, utilisez cette étonnamment simple doublure:
Avec wget pour windows
Voir chocolatey.org
OriginalL'auteur Jonathan
Utilisation Les Services Http Windows API.
Le comportement grossier appelle impoli de réponses: l'utilisation d'une autre langue.
Btw, c'est pas une langue chose, c'est une bibliothèque ...
Désolé, ce n'est pas mon intention de son grossier. Et oui, vous avez raison à ce sujet. ^^
OriginalL'auteur Sunny Milenov
Vous pouvez utiliser le WinInet ou WinHTTP classes en C++. Ce sont des native Api Win32, le résumé de certains des travaux de l'obtention de l'envoi et la réception de fichiers à partir d'Internet.
J'ai utilisé WinInet, avec grand succès, à faire exactement ce que vous essayez de faire.
Voici un exemple de code à partir de Microsoft sur l'utilisation de WinInet pour un transfert FTP: support.microsoft.com/kb/q238273
La gardera à l'esprit si j'ai besoin d'écrire un client FTP, je vous remercie. Mais cela m'obligerait à ré-inventer le téléchargement d'un fichier via HTTP sur mon disque dur local.
OriginalL'auteur CLaRGe
Si le démarrage d'un nouveau processus est ok, vous pourriez avoir un coup d'oeil à WGET. (Et même si non, les sources sont disponibles, vous pouvez regarder là pour voir comment il a été mis en œuvre.)
OriginalL'auteur Reunanen
À l'aide de POCO pour cela. 🙂
OriginalL'auteur Tom Wijsman