如何访问共享主机空间上的文件夹?
问题描述:
我试图将图像文件上传到服务器,它给我一个错误如何访问共享主机空间上的文件夹?
"System.UnauthorizedAccessException: Access to the path 'D:\Hosting\234344\html\Testingfiles\upload\813.jpg' is denied.at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)"
中的HttpHandler我:
HttpPostedFile file = context.Request.Files["Filedata"];
string usr_id = context.Request.Form["usr_id"];// gets the JSON data from the request
string strPath = context.Server.MapPath(("/Testingfiles/upload/") + file.FileName);
string ext = Path.GetExtension(strPath);
if (ext.Equals(".jpg") || ext.Equals(".jpeg") || ext.Equals(".png"))
{
file.SaveAs(strPath);
context.Response.Write("Image uploaded successfully");
}
我到底错在这里做什么?
答
错误消息说明了这一切。您没有对该文件夹的写入权限。
您将需要让您的托管服务提供商为该ASP .NET身份文件夹分配写入权限。
此外,请考虑您是否可以使用低于~/App_Data
的文件夹。这是按照惯例存储需要在ASP .NET中进行写入访问的文件的地方,因此许多托管服务提供商将默认允许写入该文件夹(但您需要检查自己是否确定您的特定主机)。
答
您应该尝试写入〜/ App_Data /以查看是否有效。如果它确实如此,那只是因为你没有给予/TestingFiles/Uploads/
文件夹的asp.net写入权限。
如果您的控制面板上的Plesk,那么你可以自己通过转到文件管理器,然后单击权限按钮排序了这一点。如果您查看App_Data文件的权限以供参考,则需要添加的实际用户名取决于使用plesk的域名。
其他主机控制面板可能允许您以不同方式进行操作。
如果你找不到它,那么你应该询问你的主机你如何设置文件权限或查看他们的知识库。
答
如果您的控制面板上有Plesk,那么您可以通过转到FileManager并单击权限按钮来自行排除此问题。
我修复了这个错误,允许IIS用户完全访问上传文件夹。无需使用App_Data文件夹
答
有关的Plesk 12.0只:
无需使用App Data文件夹。你只需要完全控制你的应用程序池组IWPG(用户名)。它一定会奏效。我搜索了很多小时,这个解决方案为我工作。
希望它也适用于其他人。
我给了应用程序池组的权限,即IWPG(用户名)。它在parellel plesk 12.0.8中运行。你的回答给了我一个很好的理由。谢谢 – 2015-05-28 17:49:05