gpt4 book ai didi

asp.net - 在 ASP.NET 中以中等信任度存储临时用户文件

转载 作者:行者123 更新时间:2023-12-02 18:23:50 26 4
gpt4 key购买 nike

我有一个场景,我的 ASP.NET Web 应用程序的用户提交由文本信息和图像组成的推荐。提交过程有以下步骤:

  • 首先,用户输入内容并选择图像路径
  • 当他点击预览时,信息会再次显示,以便他确认
  • 确认后,信息将保留在数据库中

这样做的问题是,我不想在用户实际确认之前将上传的图像存储在数据库中。相反,我将它们存储为临时文件,并仅在最终确认后才将它们放入数据库中。

由于我还希望我的应用程序以中等信任度运行,因此我仅具有对应用程序目录的写入权限,而对外部无处可写。我什至想限制 ASPNET/NETWORK SERVICE 用户对 ~/App_Data 文件夹的写入权限。我的方案的问题是,一旦在此文件夹中创建临时文件,应用程序池就会被回收,我不希望在每次提交推荐时都这样做。

您建议我如何保留这些临时文件?如果我更新文件,池不会重新启动 - 仅在创建或重命名时。但我不认为我可以将整个图像存储在一个文件中供所有用户使用。你觉得怎么样?

更新:我应该注意,我正在使用第三方控件进行上传。它使我可以在上传后以编程方式访问文件内容的二进制流,但在第二次回发后我无法保留它(第一步和回发实际上执行了上传)。

最佳答案

我会推荐IsolatedStorage 。这是一种虚拟文件夹。

这是 an example on CodeProject 的摘录:

IsolatedStorageFileStream stream = 
new IsolatedStorageFileStream(ISOLATED_FILE_NAME,
FileMode.Create, isoStore);

StreamWriter writer = new StreamWriter( stream );
writer.WriteLine( "This is my first line in the isolated storage file." );
writer.WriteLine( "This is second line." );
writer.Close();

更新:要清理文件,只需执行以下操作:

string fileName = "isolatestorage.txt";

IsolatedStorageFile storage = IsolatedStorageFile.GetStore(
IsolatedStorageScope.User | IsolatedStorageScope.Assembly, null, null);

string[] files = storage.GetFileNames(fileName);
foreach(string file in files) {
if(file == fileName) {
storage.DeleteFile(file);
break;
}
}

关于asp.net - 在 ASP.NET 中以中等信任度存储临时用户文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/271944/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com