将图像文件上传到服务器asp.net

时间:2016-02-24 10:44:44

标签: c# asp.net save-image

我有一个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的新手很抱歉,如果这是一个简单的问题,但我在网上搜索并无法解决。谢谢你的时间。

4 个答案:

答案 0 :(得分:1)

我不确定GoDaddy,但在典型的IIS托管环境中,您需要确保您尝试上传到的文件夹对与该网站的ApplicationPool关联的用户具有写入权限。< / p>

另外,请确保路径首先存在。您可以通过检查文件夹是否存在然后创建文件夹来执行此操作。

答案 1 :(得分:1)

与基本的Windows安全性一样,这与ASP.NET无关。有人将您的网站设置为在无权写入网站的用户下运行。

从安全的角度来看,这是有道理的。现在打电话给你的主机支持并询问他们 - 如何更改这个以便网站进程运行的用户可以读/写到文件夹中;)

答案 2 :(得分:1)

https://www.godaddy.com/help/set-directory-permissions-windows-6481 这是一个在goddady上设置写权限的手册。希望它有所帮助。在您的代码可以使用的文件夹上为您的应用授予写入权限

答案 3 :(得分:0)

您的代码没问题,Godaddy主机存在访问问题。 Goto > Virtual Directory > Directory Access Permission 并将Full Control设置为Application pool group