0

如何使用 MVC 在具有最小访问权限的服务器上记录文件。下一个版本的代码不适合,因为它会阻塞域。

控制器代码:

var fileFile = Request.Files["p" + prop.Id];
if (fileFile == null) continue;

string pathFile = AppDomain.CurrentDomain.BaseDirectory + "UploadedFiles";
string filenameFile = Path.GetFileName(fileFile.FileName);

if (filenameFile != null) fileFile.SaveAs(Path.Combine(pathFile, filenameFile));

(如果可以通过将文件放入缓存来实现这一点)

编辑代码:

var normalPropertyValue = new Catalog.Core.Entities.OrdinaryPropertyValue();

Environment.CurrentDirectory = Environment.GetEnvironmentVariable("TEMP");

var fileFile = Request.Files["File" + prop.Id]; if (fileFile == null) 继续;

字符串路径文件 = Environment.CurrentDirectory;

文件文件.另存为(路径文件);

普通属性值.值 = 路径文件;

instance.SetPropertyValue(prop.Id, normalPropertyValue);

4

1 回答 1

1

您可以使用通用应用程序数据位置(如果您需要它们留下来,这将比 %TEMP% 更好 - 根据我的经验,人们倾向于不时清理 %TEMP% 文件夹) - 所有用户都应该有访问它,然后你可以把它放在一个子文件夹中,如下所示:

var appDataFolder = System.Environment.GetFolderPath(SpecialFolder.CommonApplicationData);
var dir = Path.Combine(Path.Combine(appDataFolder, "My Application"), "UploadedFiles"):

// save your files into dir

以下是所有“特殊文件夹”,以防您看到您更愿意使用的文件夹: Environment.SpecialFolder

于 2011-11-18T16:49:18.010 回答