[英]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()
可能是.SaveAs
, FromFile
和Thumb.Save
-您還可以對每個實現使用不同的實現。
另外:始終使用Path.System.IO.Path.Combine()
所以不可能有額外的//
可能導致問題
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.