0

我有一个 JQUERY 文件上传插件,它允许用户将文件上传到 Coldfusion 服务器。该插件以需要我使用 GetHttpRequestData() 获取文件内容的方式将文件提交到服务器。以下是我迄今为止在处理文件数据方面的内容:

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

这很有效,很好,但我似乎无法将其带到下一步。

接下来我想要发生的是: A. 确定文件的扩展名。B. 如果它是我的应用程序定义的可接受的 ext,(JPG、PNG、PDF、DOC、DOCX 等)将其上传到服务器上的正确目录。然后删除C上面的临时文件。如果上传的文件是Image,使用CFIMAGE制作缩略图

如何通过 GetHttpRequestData 问题的步骤 AC 完成上述操作?

谢谢

4

1 回答 1

3

一些提示:

  • 查看GetHttpRequestData()via的结果结构<cfdump>
  • 通过访问此结构拉出必要的标头。Content-Type 标头通常包含您想知道的内容。您可以使用List 函数(即ListLen(), ListFirst(), ListLast(),ListRest()带有适当的分隔符)来轻松解析字符串。
  • 始终用于StructKeyExists()防止缺少结构部件。永远不要认为“通常”似乎在这个结构中的任何东西都是理所当然的。
  • 不要盲目相信文件扩展名或 Content-Type 标头。还要查看上传文件的前几个字节,并将它们与白名单进行比较以确认文件类型。
  • 看看<cffile action="upload">
  • 或者,执行驱动器空间测试以评估上传的数据是否不会阻塞服务器,或以适合您的其他方式强制执行限制。
  • 通读<cfimage>. 用它来制作缩略图并不难。
于 2010-07-25T17:13:34.090 回答