请各位帮忙,我先把我的代码贴一下。 Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
        Try
            If inputFile.PostedFile.ContentLength > 0 Then '检查上传文件不为空                Dim strSaveDir As String = "zjc-career-websys-2009/zjc_file_download" '设定上传文件的保存路径
                Dim strName As String = inputFile.PostedFile.FileName                Dim intExt As Integer = strName.LastIndexOf(".") '取得文件名(包括路径)里最后一个"."的索引                Dim strExt As String = strName.Substring(intExt) '取得文件扩展名                Dim dataNow As DateTime = DateTime.Now
                Dim strNewName = dataNow.DayOfYear.ToString + inputFile.PostedFile.ContentLength.ToString + strExt                Dim intPath As Integer = strName.LastIndexOf("\\")                Dim strNew_Name As String = strName.Substring(intPath)                inputFile.PostedFile.SaveAs(Server.MapPath(strSaveDir + strNew_Name))                Label1.Text = "上传成功!"
                Label2.Text = "文件源:" + strName
                Label3.Text = "文件类型:" + inputFile.PostedFile.ContentType + "( " + strExt + " )"
                Label4.Text = "文件大小:" + (inputFile.PostedFile.ContentLength / 1024).ToString() + " K Byte(s)"            Else
                Label1.Text = "请选择你要上传的文件!"
                Label2.Text = ""
                Label3.Text = ""
                Label4.Text = ""            End If
        Catch ex As Exception
            Response.Write(ex.Message)
        End Try
    End Sub
感谢各位了。

解决方案 »

  1.   

    估计是
    Dim intExt As Integer = strName.LastIndexOf(".") 得到-1了,代表文件没有扩展名
    -1在这里会异常
    strName.Substring(intExt) '取得文件扩展名 
      

  2.   

    Dim intExt As Integer = strName.LastIndexOf(".") '取得文件名(包括路径)里最后一个"."的索引 
    Dim strExt As String = "没扩展名";
    If intExt <>-1 Then
     strExt  = strName.Substring(intExt) '取得文件扩展名 
    End If
      

  3.   

    请问,你是不是用了AJAX页面无刷新控件啊,这里AJAX控件和FileUpload是不能一起用的。
    一起用的后果就是得不到上传文件,
    解决办法:在你的UpdatePane的面板里面加入
      <Triggers>
            <asp:PostBackTrigger ControlID="提交按钮" />
              </Triggers>
    这样就没问题了
             
      

  4.   

    Dim intExt As Integer = strName.LastIndexOf(".")+1,在后面加个1就行了
      

  5.   

    整了半天,还是提示 StartIndex 不能小于 0。参数名: startIndex  都要疯了。
      

  6.   


     Dim intExt As Integer = strName.LastIndexOf(".") '取得文件名(包括路径)里最后一个"."的索引  Dim strExt As String = strName.Substring(intExt) '取得文件扩展名 上面取得扩展名就不对了
    Dim strExt As String = strName.Substring(strName.LastIndexOf(".") + 1);