我有下一个代码:
var ordinaryPropertyValue = new Catalog.Core.Entities.OrdinaryPropertyValue();
Environment.CurrentDirectory = System.IO.Path.GetTempPath();
var fileFile = Request.Files["File" + prop.Id];
if (fileFile == null) continue;
string pathFile = Environment.CurrentDirectory;
fileFile.SaveAs(pathFile);
ordinaryPropertyValue.Value = pathFile;
instance.SetPropertyValue(prop.Id, ordinaryPropertyValue);
但我无法加载我的文件'cos下一个问题:
AccessException:拒绝访问路径'C:\ Users \ Michael \ AppData \ Local \ Temp'。
答案 0 :(得分:0)
这是一个安全例外,执行Web应用程序的用户无权在目标路径上写入。
请注意,您正在尝试将文件保存到没有文件名的目录路径。
无论如何,你的代码是一团糟,我个人不分配/更改Environment.CurrentDirectory
答案 1 :(得分:0)
我假设您在本地计算机上使用IIS,在这种情况下,您可能需要将此目录的写入权限授予运行Web应用程序的帐户(使用VS的内置服务器在您的帐户下运行) 。
如果你使用的是IIS 7 +它是'ApplicationPoolIdentity',否则就是'NETWORK SERVICE'
P.S。我也不建议更改环境设置。
答案 2 :(得分:0)
感谢您的帮助,但正如您所说,真正的原因不是访问问题。 真正的原因是空洞的“”价值。所以我重新制作了我的代码,例如:
var ordinaryPropertyValue = new Catalog.Core.Entities.OrdinaryPropertyValue();
var fileFile = Request.Files["File" + prop.Id];
if (fileFile == null)
continue;
string pathFile = Server.MapPath("~/temp");
string filenameFile = Path.GetFileName(fileFile.FileName);
if (!string.IsNullOrEmpty(filenameFile))
{
fileFile.SaveAs(Path.Combine(pathFile, filenameFile));
ordinaryPropertyValue.Value = Path.Combine(pathFile, filenameFile);
instance.SetPropertyValue(prop.Id, ordinaryPropertyValue);
}