从 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/" />
我正在尝试使用 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/" />