100高分请教!图片上传问题。
foreach (System.Web.UI.HtmlControls.HtmlInputFile inputList in arr)
{
string path= "路径+文件名 ";
inputList.PostedFile.SaveAs(path);
}
其中arr是protected ArrayList arr = new ArrayList();
现在的问题是我的机器上传都正常,我一个同事的机器上传某张图片出错,不能正常上传(系统会按路径自动生成大小为0kb的图片),但是上传别的图片又正常,那图片是.jpg类型,大小82kb。急!!!
[解决办法]
仔细调试 你把错误描述帖出来给我看看!
[解决办法]
ms不是程序的问题.跟踪一下,那个图片上传后postedfile的.length是多少?
[解决办法]
大小为0的图片会有溢出的错误。必须事先判断图片的大小。贴上自己写的代码,楼主参考一下
===
/// <summary>
/// 按比例缩放图片,并非按原来大小裁剪
/// 水平长度优先.
/// </summary>
public static string ResizeImage(string _srcImage, int _DstX, string _dstPath)
{
System.Drawing.Image img = System.Drawing.Image.FromFile(_srcImage);
int newHight = img.Height;
int newWidth = img.Width;
while (newWidth > _DstX)//按比例缩小图片
{
newHight = Convert.ToInt32(newHight / 1.01);
newWidth = Convert.ToInt32(newWidth / 1.01);
}
System.Drawing.Image newimg = img.GetThumbnailImage(newWidth, newHight, new System.Drawing.Image.GetThumbnailImageAbort(ThumbCallBack), IntPtr.Zero);
System.Drawing.Bitmap bmp = new System.Drawing.Bitmap(newimg);
string tempName=GenRandomNumber(22) + ".jpg ";
bmp.Save(_dstPath + tempName , System.Drawing.Imaging.ImageFormat.Jpeg);
return tempName;
}
/// <summary>
/// 按比例缩放图片,并非按原来大小裁剪
/// 垂直长度优先
/// </summary>
public static string ResizeImage(int _DstY, string _srcImage, string _dstPath)
{
System.Drawing.Image img = System.Drawing.Image.FromFile(_srcImage);
int newHight = img.Height;
int newWidth = img.Width;
while (newWidth > _DstY)//按比例缩小图片
{
newHight = Convert.ToInt32(newHight / 1.01);
newWidth = Convert.ToInt32(newWidth / 1.01);
}
System.Drawing.Image newimg = img.GetThumbnailImage(newWidth, newHight, new System.Drawing.Image.GetThumbnailImageAbort(ThumbCallBack), IntPtr.Zero);
System.Drawing.Bitmap bmp = new System.Drawing.Bitmap(newimg);
string tempName = GenRandomNumber(22) + ".jpg ";
bmp.Save(_dstPath + tempName, System.Drawing.Imaging.ImageFormat.Jpeg);
return tempName;
}
public static bool ThumbCallBack()
{
return true;
}
public static string GenRandomNumber(int _seed)
{
Random rdm = new Random(_seed);
return System.DateTime.Now.Millisecond.ToString() + rdm.Next(1, 65536).ToString();
}
[解决办法]
我也碰到过这样的情况,FlashFXP传图片到服务器的时候,本地好好的,但就是传上去是0KB,其他图片都OK,结果我用画图板打开图片,保存了一下就能上传了, 猜测是图片本身的问题。
[解决办法]
程序在你自己的机器上?那么你自己的机器是不是服务器呢?如果是服务器的话,可不可能是路径的问题呢?请仔细调试..
[解决办法]
很少有图片出现这样的问题,图片本身问题只有把重新生成图片才可以解决,试试生成缩略图的方式,大不了生成一样大的图片,然后把原图删了。
[解决办法]
我也遇到过这个问题,就是用了生成缩略图的方法才出现的,本地可以正常上传,服务器上就不行了,后来改成直接上传图片又都正常了,不知道什么原因