簡體   English   中英

錯誤:“找不到路徑的一部分”

[英]ERROR: “Could not find a part of the path”

對於在ASP.NET中開發網站或只是一般網站而言,我還很陌生。

我已經編寫了一個網站,該網站在Localhost上運行正常,但是當我將其放到網上時,嘗試上傳文件時出現此錯誤。

碼:

FileUpload_Billede.SaveAs(Server.MapPath("~/img/upload/") + FileUpload_Billede.FileName);
MakeThumb(FileUpload_Billede.FileName, "img/upload/", 295, "/img/sponsor/");  

我在使用了FileUpload的同一家Webhotel上放置了另一個站點,但沒有出現錯誤。

我在互聯網上讀了很多書,說是IIS導致了問題。 我以前從未接觸過IIS,這就是為什么我現在不明白為什么會有問題的原因? 在這種情況下,我不知道該在IIS管理器程序中做什么。 我希望有人能幫助我,因為我完全迷路了。

讓我知道您是否需要更多信息。

編輯:我被要求寫MakeThumb方法的定義。 這里是:

private void MakeThumb(string Filename, string UploadFolder, int bredde, string thumbuploadfolder)
{
    // Kompliceret Kode fundet fra nettet om upload og skalering af billede.

    // find det uploadede image
    System.Drawing.Image OriginalImg = System.Drawing.Image.FromFile(Server.MapPath("~/") + UploadFolder + Filename);

    // find højde og bredde på image
    int originalWidth = OriginalImg.Width;
    int originalHeight = OriginalImg.Height;

    // bestem den nye bredde på det thumbnail som skal laves
    int newWidth = bredde;

    // beregn den nye højde på thumbnailbilledet
    double ratio = newWidth / (double)originalWidth;
    int newHeight = Convert.ToInt32(ratio * originalHeight);


    Bitmap Thumb = new Bitmap(newWidth, newHeight, PixelFormat.Format24bppRgb);
    Thumb.SetResolution(OriginalImg.HorizontalResolution, OriginalImg.VerticalResolution);

    // Hvis billedet indeholder nogen form for transperans 
    //(mere eller mindre gennemsigtig, eller en gennemsigtig baggrund) bliver det gjort her
    Thumb.MakeTransparent();


    // opret det nye billede
    Graphics ThumbMaker = Graphics.FromImage(Thumb);
    ThumbMaker.InterpolationMode = InterpolationMode.HighQualityBicubic;

    ThumbMaker.DrawImage(OriginalImg,
        new Rectangle(0, 0, newWidth, newHeight),
        new Rectangle(0, 0, originalWidth, originalHeight),
        GraphicsUnit.Pixel);

    // encoding
    ImageCodecInfo encoder;
    string fileExt = System.IO.Path.GetExtension(Filename);
    switch (fileExt)
    {
        case ".png":
            encoder = GetEncoderInfo("image/png");
            break;

        case ".gif":
            encoder = GetEncoderInfo("image/gif");
            break;

        default:
            // default til JPG 
            encoder = GetEncoderInfo("image/jpeg");
            break;
    }

    EncoderParameters encoderParameters = new EncoderParameters(1);
    encoderParameters.Param[0] = new EncoderParameter(Encoder.Quality, 100L);

    // gem thumbnail i mappen /Images/Uploads/Thumbs/
    Thumb.Save(Server.MapPath("~") + thumbuploadfolder + Filename, encoder, encoderParameters);

    // Fjern originalbilledet, thumbnail mm, fra computerhukommelsen
    OriginalImg.Dispose();
    ThumbMaker.Dispose();
    Thumb.Dispose();

}

嘗試在主網站文件夾中添加DMS文件夾,然后從屬性更改權限,以使每個人都可以在此文件夾上進行讀寫

您必須確保服務器上存在img / upload文件夾,並且該文件夾應該可以訪問。

准確檢查錯誤的位置並縮小范圍-我們不需要完全實現MakeThumb,只需執行錯誤所在的位置即可。

這些文件夾可能存在,但是您的應用程序的應用程序池的標識可能沒有訪問權限。

檢查兩個文件夾(某些注釋提到“文件夾”,但大拇指已保存到其他文件夾。

如果可能,請使用Debug(而不是Release)進行部署以獲取行號,否則,請添加一些日志記錄(例如log4net)或跟蹤並添加路徑的詳細信息。

嘗試保存之前,請使用System.IO.Directory.Exists()

可能是.SaveAsFromFileThumb.Save -您還可以對每個實現使用不同的實現。

另外:始終使用Path.System.IO.Path.Combine()所以不可能有額外的//可能導致問題

暫無
暫無

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

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