请教fileupload上传时 提示StartIndex不能小于0的问题
我用的fileupload上传文件,但是运行时提示 StartIndex不能小于0。(该页面既是增加页面也是修改页面)
代码如下:
string Fullname = this.FileUpload1.FileName;//获取文件的名称
int index = Fullname.LastIndexOf(".");
string vstype = Fullname.Substring(index).ToLower();//取文件的扩展名
string Type = Fullname.Substring(Fullname.LastIndexOf(".") + 1); //获得文件的类型,即后缀
string vsnewname = System.DateTime.Now.ToString("yyyyMMddHHmmssffff");//声称文件名,防止重复
vsnewname = vsnewname + vstype;//完整的上传文件名
if (!FileUpload1.HasFile && this.OpsId == -1)//若增加页面时,上传的文件为空
{
Response.Write("<script language='javascript'>alert('请选择要上传的文件!');</script>");
return ds;
}
if (FileUpload1.HasFile)
{
if (Type == "pdf" || Type == "doc" || Type == "xls" || Type == "txt" || Type == "PDF" || Type == "DOC" || Type == "XLS" || Type == "TXT" || Type == "jpg" || Type == "JPG" || Type == "gif" || Type == "bmp" || Type == "rar" || Type == "zip" || Type == "dwg" || Type == "jpg" || Type == "JPG" || Type == "GIF" || Type == "BMP" || Type == "RAR" || Type == "ZIP" || Type == "DWG")
{
this.FileUpload1.SaveAs(Server.MapPath("~/Fujian/" + vsnewname));
dr[ShProductData.PRODES_FIELD] = vsnewname; //添加页面时 直接赋值
}
else
{
Response.Write("<script language='javascript'>alert('你上传的文件格式有错误!');window.location.href='ProductEdit.aspx';</script>");
return ds;
}
}
dr[ShProductData.NUMCODE_FIELD] = this.txtNumCode.Text;
dr[ShProductData.VERSION_FIELD] = this.txtVerSion.Text;
dr[ShProductData.PRONAME_FIELD] = this.txtProName.Text;
dr[ShProductData.PROCLASS_FIELD] = int.Parse(this.ddlProClass.SelectedValue);
dr[ShProductData.KEYWORDS_FIELD] = this.txtKeyWords.Text;
dr[ShProductData.PRODES_FIELD] = vsnewname;//上传的文件名
dr[ShProductData.ISWAS_FIELD] = 0;
dr[ShProductData.BEIZ_FIELD] = this.txtBeiz.Text;
dr[ShProductData.EXE_FIELD] = Type;//文件后缀
dr[ShProductData.ADDTIME_FIELD] = this.txtAddTime.Text;
if (this.OpsId != -1)//更新页面
{
dr[ShProductData.ID_FIELD] = this.OpsId;//表示更新数据的 ID
if (!FileUpload1.HasFile)//若更新页面上没有上传文件
{
dr[ShProductData.PRODES_FIELD] = ViewState["file"].ToString(); //原数据列中该文件名
dr[ShProductData.EXE_FIELD] = ViewState["index"].ToString(); //原数据列中该文件后缀
}
}
ds.Tables[0].Rows.Add(dr);
return ds;
该页面既是增加页面也是修改页面 如果为增加页面,则必须上传文件,否则提示'请选择要上传的文件”且文件格式要对。若修改页面,想重新上传附件,则相应的文件后缀及上传的文件名为新上传的,若更新页面没有上传文件,则附件仍为原来的 后缀也是原来的。问题就在这,当更新页面没有上传文件时,此时就提示“StartIndex不能小于0”的错误,请问这个问题该如何解决??大家可能会说 在 int index = Fullname.LastIndexOf(".");的后面加个1,但是如果这样的话,保存的附件的名字就不对了,就会变成 ***doc ,而非原来的***.doc 少了个. 请大家帮忙看下 代码如何改?谢谢啊
------解决方案--------------------你把你这一堆代码
----------------------
string Fullname = this.FileUpload1.FileName;//获取文件的名称&nb