SWFUpload,多文件上传续

在上一篇文章(SWFUpload多文件上传,文件大小增大问题 )中,谈到利用SWFUpload,来实现多文件上传,在实际的应用环境中,运行一段时间后,在WEB服务器上偶尔会有下列应用程序事件日志
事件代码: 3005
事件消息: 发生了未处理的异常

进程信息:
    进程 ID: 2252
    进程名: w3wp.exe
    帐户名: NT AUTHORITY\NETWORK SERVICE
 
异常信息:
    异常类型: ArgumentException
    异常消息: 参数无效。
   
经过排查,发现有些图片,在上传的时候,无法获取原始文件名,尤其是文件名包含中文字符的情况下。
代码如下:
//根据文件名获取图片格式
private string GetFileExt(string str)
{
 string ext, ext2;
 ext2 = "";
 ext = "jpg";
 int pos = str.LastIndexOf('.');
 if (pos != -1)
 {
  ext = str.Substring(pos + 1).ToLower();
  if (ext == "jpeg")
   ext2 = "jpg";
 }
 return string.IsNullOrEmpty(ext2) ? ext : ext2;
}
   
HttpPostedFile imgUpload = Request.Files["Filedata"];
originalImage = System.Drawing.Image.FromStream(imgUpload.InputStream);//注:imgUpload是HttpPostFile控件
picWidth = originalImage.Width;
picHeight = originalImage.Height;
picSize = int.Parse(imgUpload.InputStream.Length.ToString());
picName = GetFileName(imgUpload.FileName.Trim());

猜想应该是编码问题导致的,找到Web.Config,发现如下信息:<globalization requestEncoding="gb2312" /> 呵呵,修改成utf-8,问题解决!

posted @ 2009-04-20 15:14  对工作要鞠躬尽瘁  阅读(1684)  评论(0编辑  收藏  举报