Henry Liang's Dot Net Blog

  Genius is one percent inspiration and ninety-nine percent perspiration.

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

今天要写一个小web application,允许用户上传最多到3张图片(网页上有3个文件上传框),然后将图片压缩之后添加到email中作为附件,最后用服务器上的smtp server发送email。听起来很简单,但是当中却包含了一个潜在的usability问题。
这个问题发生在,当用户没有使用第一个上传框而是用第二个或是第三个上传框,当我在Iterate httpUploadedFiles时,就会导致第一个上传文件为空。这样当我再将这个空的图片作为附件添加到email的时候,就会导致错误。当然,按照一般的使用规律,用户当然会先选择第一个上传框,然后第二个……但是不能够排除某些时候的特定情况,这也是程序强健性的表现。
这个问题有两种解决方法,
1. 修改页面结构。一开始只显示一个上传框,如果有必要,允许用户“添加下一张图片”,就像hotmail那样。
2. 用程序来检测哪个上传框中真正上传了文件。
我采用了第二个办法,下面是代码:

Dim hpc As HttpFileCollection = HttpContext.Current.Request.Files
Dim ht2 As New Hashtable
If Not hpc Is Nothing Then
    
Dim i As Integer = 0
    
Dim c As Integer = 0
    
While c < hpc.Count
        
Dim file As System.Web.HttpPostedFile = hpc(c)
        
If (Not file Is NothingAnd (file.ContentLength > 0Then
            
Dim str As String = SaveImage(file)
            ht2.Add(
"Image" & i.ToString(), str)
            i 
= i + 1
        
End If
        c 
= c + 1
    
End While
End If
posted on 2006-06-15 04:57  Henry Liang  阅读(328)  评论(0编辑  收藏  举报