我试图使用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