簡體   English   中英

將圖像保存到IIS localhost中的文件夾

[英]Saving image to a folder in IIS localhost

我必須將圖像保存到位於“ c:\\ inetpub \\ wwwroot \\”的文件夾中,並命名為“ UploadedImages”。 這是我的代碼:

         public string SaveImage(string base64,int compno)
{
    string res = "";
    try
    {

        using (MemoryStream ms = new MemoryStream(Convert.FromBase64String(base64)))
        {
            using (Bitmap bm2 = new Bitmap(ms))
            {
                bm2.Save(Server.MapPath("~/UploadedImages/ID"+compno+".jpg"));
            }
        }
        res = "done";
    }
    catch (Exception ex) {
        res = ex.ToString();
    }
    return res;
}

但它會引發“ System.Drawing.Image.Save處的GDI +中發生一般錯誤”異常。 我究竟做錯了什么? 當將圖像本地保存為

       bm2.Save("D:Embasy\UploadedImages\ID"+compno+".jpg"));

我需要進行哪些更改才能將圖像保存在localhost目錄中?

您不會相信這一點-運行v1.1的站點有一個虛擬目錄設置,該目錄已映射到將映像保存到的目錄-一切正常。

v2.0站點也具有相同的虛擬目錄名稱,但是物理路徑不同-我將路徑更改為指向與v1.0站點相同的目錄,現在代碼可以正常工作了。

簡而言之,您對“路徑必須存在”是正確的。

Windows或ASP.NET服務中不支持使用System.Drawing命名空間中的類。 嘗試從這些應用程序類型之一中使用這些類可能會產生意外問題,例如服務性能下降和運行時異常。 有關支持的替代方法,請參見Windows Imaging Components。

並請參考此鏈接

http://msdn.microsoft.com/en-us/library/xs6ftd89.aspx

使用Server.Mappath時

bm2.Save(Server.MapPath("~/UploadedImages/ID"+compno+".jpg"));

“〜(tield)” :指向項目/應用程序的根文件夾c:\\ inetpub \\ wwwroot \\ yourproject

然后找到剩余的路徑/ UploadedImages,然后創建ID1.jpg。

但是您的圖像文件夾“ UploadImages”存在於d:中, 而不存在於c:\\ inetpub \\ wwwroot \\ yourproject中

如果要在D中存在圖像文件夾,則應創建虛擬目錄 ,然后將路徑應用為相關路徑

我的問題實際上是,每次我發布網站時,我也都替換了“ UploadedImages”文件夾,因此更改了權限。 因此,在更改其權限並創建“所有人”組並賦予其完全權限后,我沒有再次替換該文件夾。 現在代碼可以完美運行了:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM