2012-10-12 24 views

回答

1

你只是询问如何生成一个随机字符串?最快的方法是使用createUUID()。这使得一个很长的(35我认为)字符随机字符串。您也可以使用randRand来动态选取随机字母。

+0

赞成用户添加附件的冠军,但我想改变它到随机字符串,但是当用户再次查看文档时,他们将看到他们输入的名称而不是随机字符串。 – user1555446

+0

这部分啊(他们看到原文)看到Brian的下面。 :)以为你有这个,但只需要随机部分。 –

+4

我想添加一个更重要的笔记。你说为了“安全原因”你需要一个随机字符串。这似乎意味着你在web根目录下存储附件。别。认真。这是一个非常糟糕的主意。即使您在上传时重命名文件,具有负载测试工具的人也可以在上传和重命名之间以毫秒为单位执行代码。我知道是因为我的一个应用程序被黑客攻击了。您的上传应始终转到非网页可访问的文件夹。期。 –

0

在服务器端,你将需要存储这两个文件的原始名称,并在数据库中的文件名随机字符串版本。如果不存储原始版本的文件名,则不知道文件名的原始版本。或者,如果您的文件有一个通用的命名方案(即显示给客户的所有文件名都是“nameOfCustomer-coupon.pdf”),则原始文件名无关紧要,并且不需要存储。

当请求该文件提出,将使用内容处置HTTP标头,以显示原来的文件名:

Content-Disposition: attachment; filename=<file name.ext> 

<cfheader name="Content-Disposition" value="filename=someFileName.someExtension">