zl程序教程

您现在的位置是:首页 >  其他

当前栏目

Coldfusion使用GetHttpRequestData来存储和处理文件

2023-04-18 12:29:42 时间

我有一个JQUERY文件上传插件,它允许用户将文件上传到Coldfusion服务器。该插件将文件提交给服务器的方式要求我使用GetHttpRequestData()作为文件内容。这里是我迄今为止在处理文件数据方面:Coldfusion使用GetHttpRequestData来存储和处理文件

<cfparam name="URL.qqfile" type="string"> 
<cfset x = GetHttpRequestData()> 
<cffile action="write" output="#x.content#" file="c:	emp#URL.qqfile#"> 

这个工作,这是很好的,但我似乎不能借此下一步。

接下来我想要做的是: A.确定文件的扩展名。 B.如果它是由我的应用程序(JPG,PNG,PDF,DOC,DOCX等)定义的可接受分机,请将其上传到服务器上的正确目录。然后删除以上临时文件 C.如果上传的文件是图片,请使用CFIMAGE创建缩略图

如何通过GetHttpRequestData问题通过步骤A-C获取上述内容?

感谢

WozPoz

从你的其他线程看,这个行为似乎是依赖于浏览器的。所以你可能想要使用像正常的cffile上传做其他文件处理...

这样的测试可悲的是,这仍然不起作用。有任何想法吗?我很想看到一个页面,显示如何处理来自AJAX上传插件的GetHttpRequestData() –

为什么你必须使用GetHttpRequestData()?我使用jQuery将图像上传到CF服务器端并使用cffile。 –

回答

一些提示:

  • 必须通过<cfdump>一起来看看GetHttpRequestData()结果结构。
  • 通过访问此结构拉出必要的标题。 Content-Type标题通常包含你想知道的东西。您可以使用List functions(即ListLen()ListFirst()ListLast(),ListRest()以及适当的分隔符字符)轻松解析字符串。
  • 总是使用StructKeyExists()来防止丢失结构部分。永远不要理所当然地认为“典型”似乎在这个结构中的任何东西。
  • 请勿盲目信任文件扩展名或Content-Type标头。同时查看上传文件的前几个字节,并将它们与白名单进行比较以确认文件类型。
  • 看一看<cffile action="upload">
  • 可选地,perfom a drive space test用于评估上传的数据是否不会堵塞服务器,或以另一种适合您的方式执行限制。
  • 通读<cfimage>的文档。它不能是很难用它来制作缩略图。

Tomalak

Coldfusion使用GetHttpRequestData来存储和处理文件