我目前正在开发Web Api 2项目。 我正在使用的方法是上传图像方法。
这是我的代码:
public IHttpActionResult Upload()
{
string UserID = "12345";
// LOCAL VARIABLE
dynamic ExpObj = new ExpandoObject();
// Virtual Directory Located on My Computer
var FilePath = HttpContext.Current.Server.MapPath("/Images");
// Virtual Directory Located on Another Computer (Located on LAN Network)
var FilePath2 = HttpContext.Current.Server.MapPath("/tes2");
if (HttpRequest.Files.Count > 0)
{
foreach (string file in HttpRequest.Files)
{
// GET UPLOADED IMAGE
var PostedFile = HttpRequest.Files[file];
// SET FILE NAME ( USERID + Right(FileName,10) )
string FileName = GetFileName(UserID, PostedFile.FileName, 10);
// SAVE IMAGE
//PostedFile.SaveAs(FilePath + FileName);
string ImagePath = Path.Combine(FilePath, FileName);
string ImagePath2 = Path.Combine(FilePath2, FileName);
PostedFile.SaveAs(ImagePath2);
File.Copy(ImagePath2, ImagePath);
ExpObj.imageURL = ServerUrl + ServerPath + FileName;
}
}
else
{
ErrCode = -900;
}
// RETURN IF GOT ERROR
if (ErrCode < 0)
{
return StatusCode((HttpStatusCode)(ErrCode * (-1)));
}
// RETURN
return Ok(ExpObj);
}
我的方法的作用是,它使用多部分表单数据在API中接收图像作为输入,并将其上传到服务器上。 我正在使用的目录是虚拟目录
“/ Images”=“\\ 192.168.12.28 \ Share Folder \ PIJ Share”
“/ tes2”=“C:\ Dummy”
当我尝试将其上传到我自己的计算机时,它可以正常工作,但是当我尝试将其上传到另一台计算机上时,会出现此错误。
Access to the path denied error
以下是我试图解决的问题:
以管理员身份打开Visual Studio 2013
添加指定文件夹的权限(NETWORK SERVICE,IIS_IUSR,pij.api(我的应用程序池的名称),DefaultAppPool,Everyone)。我已经授予每个用户读/写权限。
这些都没有奏效。我还尝试使用File Exploler将图像文件添加到“\ 192.168.12.28 \ Share Folder \ PIJ Share”。它有效。 我该怎么办?
非常感谢。
更新(1.1)
我尝试在没有IIS的情况下执行代码(在visual studio 2013上使用localhost)并且文件已成功上传。但是当我用IIS(http://api.pijmobile.local/)执行它时,我得到了拒绝路径的访问错误。
似乎问题出在IIS设置中。仍在寻找答案。