我通过Request.Files[0].ContentType得到的值是application/octet-stream
可是上传其他文件也可能得到application/octet-stream,
还有其他的方法判断吗

解决方案 »

  1.   

    string sExt = System.IO.Path.GetExtension(this.flFile.PostedFile.FileName);if(sExt.ToLower() != ".rar")
    {
        this.RegisterStartupScript("UserNote","<Script language='javascript'>alert('对不起,您只能上传 .rar 格式的压缩文件!');</Script>");
        return;
    }
      

  2.   

    Dim FullFileName As String = File1.PostedFile.FileName
            Dim FileName As String = FullFileName.Substring(FullFileName.LastIndexOf("\") + 1)
            Dim Type As String = FullFileName.Substring(FullFileName.LastIndexOf(".") + 1)
            Type = StrConv(Type, VbStrConv.LowerCase)
            If Type = "rar" Then
                If File.Exists(Server.MapPath("files") + "\" + FileName) = False Then
                    File1.PostedFile.SaveAs(Server.MapPath("files") + "\" + FileName)
                    Response.Write("<Script>alert('上传成功!');</script>")
                Else
                    Response.Write("<Script>alert('您要上传的文件和服务器中已经存在的文件同名,请更名后重新上传!');</script>")
                End If
            Else
                Response.Write("<Script>alert('您上传的文件不是合法格式!');</script>")
            End If
      

  3.   

    判断文件后缀名,如果为.rar就合法,其它为不合法
      

  4.   

    把一个本来是exe的文件直接改后缀名为rar后上传,楼上的那些方法还行么?如果楼主对文件格式是要绝对保证是rar,可通过判断rar的文件的头信息(rar文件开始部分有段专门的描述信息,但具体格式忘了,楼主可查查)来确定是否是rar文件。这是本人愚见,不代表最好的方法,楼主根据自己的实际情况参考吧。当然如果要求不高,判断后缀名就够了。
      

  5.   

    在选择文件的时候判断一下
    <INPUT id="myFile" type="file" onchange="checkData()" size="34" runat="server" NAME="myFile"><script>
       function checkData()
       {
        var fileName=document.getElementById("myFile").value;
        if(fileName=="")
         return;
        var exName=fileName.substr(fileName.lastIndexOf(".")+1).toUpperCase()
        //alert(exName)
        if(exName=="RAR")
        {
             表示正确
        }
        else
        {
             表示错误,进行一些处理
        } 
       }
      </script>
      

  6.   

    先获取你在file控件里选中的文件的扩展名,然后判断一下,不是rar的就不上传就行了把,呵呵