将图像文件上传到服务器 asp.net
本文关键字:服务器 asp net 图像 文件 | 更新日期: 2023-09-27 18:35:56
我有一个 asp.net 项目,我正在将选定的图像保存到NewUrunler1文件中,并且我正在将图像的路径保存在我的数据库中。在本地,它可以正常工作,但是由于我将项目移动到了我的 godaddy 主机,因此保存方法会出现错误。这是我保存图像的代码:
protected void UploadImage()
{
try
{
HttpPostedFile yuklenecekDosya = FileUploadImage.PostedFile;
if (yuklenecekDosya != null)
{
FileInfo dosyaBilgisi = new FileInfo(yuklenecekDosya.FileName);
string yuklemeYeri = Server.MapPath("~/Images/NewUrunler1/" + dosyaBilgisi);
FileUploadImage.SaveAs(Path.Combine(yuklemeYeri));
}
}
catch (Exception e)
{
failDiv.Visible = true;
lblHata.Text = e.ToString();
}
}
当我运行它时,我从 try catch 中收到错误。这是错误:
System.UnauthorizedAccessException: Access to the path 'G:'PleskVhosts'ada-crm.com'httpdocs'Images'NewUrunler1'deneme.png' is denied. at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost) at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy) at System.IO.FileStream..ctor(String path, FileMode mode) at System.Web.HttpPostedFile.SaveAs(String filename) at CRM.UrunEkle.UploadImage()
我是 asp.net 新手,如果这是一个简单的问题,我很抱歉,但我在网上搜索但无法解决。谢谢你的时间。
我不确定GoDaddy,但在典型的IIS托管环境中,您需要确保您尝试上传到的文件夹具有与网站应用程序池关联的用户的写入权限。
此外,请确保路径首先存在。您可以通过检查文件夹是否存在,然后在不存在时创建它们来执行此操作。
这与 ASP.NET 无关,与基本的Windows安全性无关。有人将您的网站设置为在无权写入网站的用户下运行。
从安全的角度来看,这是有道理的。现在致电您的主机支持并询问他们 - 如何更改此设置,以便运行网站进程的用户可以读取/写入文件夹;)
https://www.godaddy.com/help/set-directory-permissions-windows-6481这是在戈达迪上设置写入权限的手册。希望它有帮助。在代码将工作的文件夹上授予对应用的写入权限
您的代码没有问题,Goaddy 主机存在访问问题。 Goto > Virtual Directory > Directory Access Permission
并将Full Control
设置为Application pool group