我想从asp.net网站接收文件,但我想在将文件提供给客户端之前用数据库中的数据验证请求。
对于图像,我将使用标准的html图像标记加载:
'<img src="/Uploads/RANDOMGUID/img.aspx" alt="The Moon" title="The Moon">
请求将在路径中具有随机GUID,该GUID映射到数据库中用于存储图像的字段。
我想为所有请求设置一个入口点,例如aspx或ashx页面[除非有更好的方法],这样就可以了:
我应该如何实现这些功能?我是否需要在aspx文件中处理的站点范围文件扩展名并返回自定义文件内容类型?
答案 0 :(得分:1)
首先,将图像文件放入用户无法直接访问的目录中。
然后像这样改变路径:
<img src="/Uploads/img.aspx?id=RANDOMGUID" alt="The Moon" title="The Moon">
这样,您可以从Request.QueryString [&#34; id&#34;]获取ID并进行检查。
它比你想要的路径容易得多,因为它总是会转到相同的aspx页面。使用原始路径,您将不得不进行路径映射并使您的生活复杂化。
签入数据库后,您可以使用Response.WriteFile发送相应的文件。查看https://msdn.microsoft.com/en-us/library/dyfzssz9%28v=vs.110%29.aspx了解详情。
编辑:这是关于获取图像的ID。正如@mason指出的那样,你应该注册处理程序并使用.ashx扩展名,因为你真的不需要查看。