从 coldfusion 中的自动下载 url 获取文件

Get a file from auto download url in coldfusion

我正在尝试使用 cfhttp 从自动下载 url 中获取文件。 我正在使用以下代码:

<cfhttp method="get" url="http://www.example.com/getfile" path="E:/" file="abc.csv">

在这种情况下,我已将文件类型指定为 CSV,因此我能够获取文件,但文件类型可能会更改。 我尝试 CFHTTP.MIMETYPE 获取文件类型并像这样使用:

<cfhttp method="get" url="http://www.example.com/getfile">
<cffile action="write" file="E:/abc.#listLast(cfhttp.MIMETYPE,'/')#" output="#cfhttp.FileContent#">

这适用于 CSV 和 XML 文件。但我希望它也适用于 Excel 个文件。

请帮忙。 提前致谢。

<cfhttp method="get" url="http://www.example.com/getfile">
<cfset fileName = listlast(cfhttp["responseHeader"]["content-disposition"],";=")>
<cffile action="write" file="E:/abc.#fileName#" output="#cfhttp.FileContent#">

如“Regular Jo”所述,您需要将 getAsBinary="Auto" 添加到 cfhttp 才能使其正常工作。感谢 Deepak Kumar Padhy 的初步回答,为我指明了正确的方向。

<cfhttp method="get" url="http://www.example.com/getfile" getAsBinary="Auto" result="cfhttp">
        
<cfdump var="#cfhttp#">
        
<!--- Returns the file name with double quotes, ex. '"Users.zip"' --->
<cfset fileNameWithQuotes = listlast(cfhttp["responseHeader"]["content-disposition"],";=")>
        
<!--- Remove the '"' in the file name so it is Users.zip --->
<cfset fileName = REPLACENOCASE(fileNameWithQuotes,'"','', 'ALL')>
       
<!--- Write the zip to the server location ---> 
<cffile action="write" file="E:/abc/#fileName#" output="#cfhttp.FileContent#">
        
<!--- if zip file, unzip the file to get the csv --->
<cfzip file="E:/abc/#fileName#" action="unzip" filter="*.csv" destination="E:/abc/" />