我有一个场景,我的ASP.NET Web应用程序的用户提交包含文本信息和图像的推荐。提交过程分为以下几步骤:
- 首先,用户输入内容并选择图像路径。 - 当他点击预览时,再次显示信息以便确认。 - 一旦确认,信息将被保存在数据库中。
这样做的问题在于,在用户实际确认之前,我不想将上传的图像存储在数据库中。相反,我将它们作为临时文件存储,并仅在最终确认后将它们放入数据库中。
由于我还希望我的应用程序在中等信任级别下运行,因此我只有对应用程序目录和其他地方没有写权限。我甚至想限制ASPNET / NETWORK SERVICE用户对~/App_Data文件夹的写权限。我的情况是,一旦在此文件夹中创建了临时文件,应用程序池就会被重新启动,而我不希望在每个推荐提交时都这样做。
您建议我如何保存这些临时文件?如果我更新文件,池不会重新启动——只有在创建或重命名时才会重新启动。但我不认为我可以将整个图像存储在单个文件中供所有用户使用。您怎么看?
更新:我应该指出,我正在使用第三方控件进行上传。它允许我在上传后以编程方式访问文件内容的二进制流,但我无法在第二次回发后保留它(第一步和回发实际上执行上传)。
- 首先,用户输入内容并选择图像路径。 - 当他点击预览时,再次显示信息以便确认。 - 一旦确认,信息将被保存在数据库中。
这样做的问题在于,在用户实际确认之前,我不想将上传的图像存储在数据库中。相反,我将它们作为临时文件存储,并仅在最终确认后将它们放入数据库中。
由于我还希望我的应用程序在中等信任级别下运行,因此我只有对应用程序目录和其他地方没有写权限。我甚至想限制ASPNET / NETWORK SERVICE用户对~/App_Data文件夹的写权限。我的情况是,一旦在此文件夹中创建了临时文件,应用程序池就会被重新启动,而我不希望在每个推荐提交时都这样做。
您建议我如何保存这些临时文件?如果我更新文件,池不会重新启动——只有在创建或重命名时才会重新启动。但我不认为我可以将整个图像存储在单个文件中供所有用户使用。您怎么看?
更新:我应该指出,我正在使用第三方控件进行上传。它允许我在上传后以编程方式访问文件内容的二进制流,但我无法在第二次回发后保留它(第一步和回发实际上执行上传)。