StartIndex 不能小于 0。
参数名: startIndex
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.ArgumentOutOfRangeException: StartIndex 不能小于 0。
参数名: startIndex源错误: 行 21:             string strDir = FileUpload1.PostedFile.FileName;
行 22:             int myPos = strDir.LastIndexOf("\\");
行 23:             string strFileName = strDir.Substring(myPos);
行 24:             string strPath = Server.MapPath(".") + strFileName;
行 25:             this.Label2.Text = "保存路径: ";
 

解决方案 »

  1.   

    上传的不带路径的。你这里LastIndexOf没用,22,23行删除吧。string strPath = Path.Combine(Server.MapPath("."),FileUpload1.PostedFile.FileName);
      

  2.   

    额。。刚才看了看,其实我的button控件里的代码是这样的{
        protected void Page_Load(object sender, EventArgs e)
        {    }
        protected void Button1_Click(object sender, EventArgs e)
        {
            if (FileUpload1.PostedFile != null)
            {
                string strDir = FileUpload1.PostedFile.FileName;
                int myPos = strDir.LastIndexOf("\\");
                string strFileName = strDir.Substring(myPos);
                string strPath = Server.MapPath(".") + strFileName;
                this.Label1.Text = "保存路径:";
                this.Label1.Text += strPath;
                FileUpload1.PostedFile.SaveAs(strPath);
                this.Label1.Text += "文件名称:";
                this.Label1.Text += FileUpload1.PostedFile.FileName;
                this.Label1.Text += "文件类型:";
                this.Label1.Text += FileUpload1.PostedFile.ContentType;
                this.Label1.Text += "文件大小:";
                this.Label1.Text += FileUpload1.PostedFile.ContentLength.ToString();
            }
        }
    }删除了那两项之后,又提示别的错误了
      

  3.   

    <%@ Import Namespace="System" %>
    <%@ Import Namespace="System.Web.HttpPostedFile" %>
    <%@ Import Namespace="System.Web.UI.HtmlControls.HtmlInputFile" %>
    <script language="VB" runat="server">
    Sub UpLoad(Src As Object, E As EventArgs)
         If UploadFile.PostedFile.ContentLength=0 then
           ShowUpLoadFile.innerText="上传失败或文件不存在!"
      Else
          '获取文件名
       dim Temp() as String=Split(UploadFile.PostedFile.FileName,"\")
       dim FileName as String=Temp(Temp.Length-1)
       '保存文件
      UploadFile.PostedFile.SaveAs(Server.MapPath(".") & "\Files\" & FileName)
       '显示上传结果
       ShowUpLoadFile.InnerHtml="文件上传成功!<br>上传文件名:" & FileName
         End If
    End Sub
    </script>
    <html>
    <body>
        <form runat="server" enctype="multipart/form-data">
           <input type="file" id="UploadFile" runat="server" size="50"><br>
           <asp:button runat="server" Text="立即上传" onClick="Upload" />
        </form>
     <hr><br>
     <span id="ShowUpLoadFile" runat="server"></span>
    </body>
    </html>
      

  4.   

    在路径前加@,防止路径中的\斜杠被转义还有路径前最好加Server.MapPath,这样才能将相对路径转换为服务器的绝对路径
      

  5.   

    简单一句话
    string strFileName = strDir.Substring(myPos + 1);
      

  6.   

    1.strDir你的值不对,你索引的时,查找不到("\\")报错
    2.你是不是在UpdatePanel里面用FileUpload1,如果是这样的话strDir就是空值,你在加上
         </ContentTemplate>
            <Triggers>
                <asp:PostBackTrigger ControlID="btnExport"></asp:PostBackTrigger>
            </Triggers>
        </asp:UpdatePanel>