2016-07-16 1 views
3

Si je lance le code suivant pour obtenir une image à partir du site de moyen:Comment obtenir le nom de fichier d'une requête get cfhttp?

<cfhttp url="https://cdn-images-1.medium.com/max/600/1*3j1McX-y1rvKewzI2gWc_w.png" 
method="get" useragent="#CGI.http_user_agent#" getasbinary="yes"> 

Je veux ensuite enregistrer l'image avec le même nom qu'ils utilisaient à savoir 1*3j1McX-y1rvKewzI2gWc_w.png.

Comment puis-je obtenir le nom du fichier à partir de la requête cfhttp? J'ai regardé dans le cfhttp.header pour tout signe de l'attribut content-disposition mais je ne le trouve pas.

+1

Qu'en est-il de l'obtention du nom de fichier à partir de l'URL demandée? – Beginner

+0

Je me demande si le fait que le nom de fichier ait un '*' posera problème. Le système d'exploitation que vous utilisez permet-il un nom de fichier avec un '*'? –

+0

@Beginner Parce que l'URL ne contient pas toujours exactement le nom du fichier. Il pourrait être généré par programme par leur serveur. Je pense que Adobe Scene7 fait cela. –

Répondre

2

En supposant que vous obtenez ces URL dynamiquement, pourquoi ne pas simplement l'analyser pour le nom de fichier d'abord, puis l'appliquer à l'attribut filename?

<cfset filename1 = ListLast("https://cdn-images-1.medium.com/max/600/1*3j1McX-y1rvKewzI2gWc_w.png","/") /> 

<cfhttp url="https://cdn-images-1.medium.com/max/600/1*3j1McX-y1rvKewzI2gWc_w.png" 
method="get" useragent="#CGI.http_user_agent#" getasbinary="yes" path="whateverpath" filename="#filename1#> 
+0

c'est quelque chose que je pensais à l'origine, mais de nombreuses URL fournies par les utilisateurs ne contiennent pas un lien direct vers un nom de fichier d'image avec une extension de fichier. Ils pointent parfois vers une URL étrange qui génère une image dynamiquement comme adobe scene7 –

+0

Je ne pouvais pas trouver de meilleure solution, donc je suis allé avec cette solution. Merci TRose, voté comme réponse. –

+1

Utilisez la fonction 'fileGetMimeType' après avoir téléchargé le fichier pour deviner l'extension du fichier au cas où vous n'en auriez pas. C'est ta seule chance. – Alex