日期:2014-05-18  浏览次数:20474 次

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(newHigh