我試圖使用swfupload上傳文件到服務器。照片上傳在開發機器上工作得很好,但是當我試圖在生產服務器上檢查它時。有500 internal server error
。檢查例外詳情asp.net頁面上500內部服務器錯誤可能由server.MapPath
`Stack trace: at System.Drawing.Image.Save(String filename, ImageCodecInfo encoder, EncoderParameters encoderParams)
at System.Drawing.Image.Save(String filename, ImageFormat format)
at ImageryDataAccess.SaveFullSizeImage(Byte[] ImageData)
at ImageryDataAccess.SaveUserImage(Byte[] ImageData, Guid UserId)
at Photos.Page_Load(Object sender, EventArgs e)
at System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) `
顯示了此詳細信息。我檢查保存fullsizeimage
好像有隻有一個犯罪嫌疑人的功能,那就是
string fileName=ImageName.ToString() + ".JPEG";
string App_datapath = HttpContext.Current.Server.MapPath("~/App_Data/setP");
bmp.Save(App_datapath+"/" +fileName, System.Drawing.Imaging.ImageFormat.Jpeg);
此代碼開發服務器上的罰款,但不生產。我不確定我在這裏出了什麼問題。 /
是我唯一的猜測,因爲微軟使用\
作爲目錄路徑。但爲什麼然後它會在開發服務器上工作。如果有任何人可以解決問題..
這條道路是否存在?作爲一個方面的說法,將用戶上傳的文件存儲在根之外可能會更安全,因此如果有人設法上傳惡意文件,則無法在線執行 –
是的,路徑存在,您是對的我必須做到這一點,但現在我必須使這項工作.. –
@Bartdude - 不是真的 - 他的上傳腳本應該只允許人們上傳某些文件擴展名。 – Darren