积极答复者
从新提问--固定4个附件采用多附件上传方法写入数据库

问题
-
数据库 字段id, fujian1,fujian2,fujian3,fujian4 四个字段
页面附件
<asp:FileUpload ID="File1" runat="server" Width="290px" />
<asp:FileUpload ID="File2" runat="server" Width="290px" />
<asp:FileUpload ID="File3" runat="server" Width="290px" />
<asp:FileUpload ID="File4" runat="server" Width="290px" />
后台cs也代码
HttpFileCollection Files = HttpContext.Current.Request.Files;
for (int i = 0; i < Files.Count; i++)
{
HttpPostedFile PostedFile = Files[i];
if (PostedFile.ContentLength > 0)
{
string FileName = PostedFile.FileName;
string strExPrentFile = FileName.Substring(FileName.LastIndexOf(".") + 1);
string[] AgreeExPrentFile = new string[] { "doc", "jpg", "txt", "rar" };
bool IsUp = false;
for (int j = 0; j < AgreeExPrentFile.Length; j++)
{
if (strExPrentFile.Equals(AgreeExPrentFile[j]))
{
IsUp = true;
}
}
if (IsUp)
{
fn=DateTime.Now.ToString("yyMMddhhmmss")+Strings.GetRandom(5)+"."+strExPrentFile;
}
}
string strSql="insert into table(fujian1,fujian2,fujian3,fujian4) values(.....)"
}
}
Strings.GetRandom(5) 是一个获得随机数的方法。
现在需求是,用户上传附件不是必须4个附件都必须上传,有可能选择附件1,附件2,附件4 或者其他组合。总之上传附件文件和对应数据库字段对应,如果附件4有值要写到数据库fujian4里,而不是fujian3 。现在我无法获得附件是那个控件来的。不知道我这个需求怎么解决
不用羡慕----那,只是个传说!
答案
-
HTML
<asp:FileUpload ID="File1" runat="server" Width="290px" /> <asp:FileUpload ID="File2" runat="server" Width="290px" /> <asp:FileUpload ID="File3" runat="server" Width="290px" /> <asp:FileUpload ID="File4" runat="server" Width="290px" />
CS
protected void Page_Load(object sender, EventArgs e) { } protected void btnSubmit_Click(object sender, EventArgs e) { HttpFileCollection fFiles = HttpContext.Current.Request.Files; Dictionary<string, string> fColumns = new Dictionary<string,string>(); foreach (string fKey in fFiles.AllKeys) { // 这里仅文件名为例构造出 SQL 语句并不保存到数据库中 string fValue = fFiles[fKey].FileName; if (!String.IsNullOrEmpty(fValue)) { if (fKey == "File1") fColumns.Add("fujian1", fValue); else if (fKey == "File2") fColumns.Add("fujian2", fValue); else if (fKey == "File3") fColumns.Add("fujian3", fValue); else if (fKey == "File4") fColumns.Add("fujian4", fValue); } } if (fColumns.Count != 0) { StringBuilder fColumnBuilder = new StringBuilder(); StringBuilder fValueBuilder = new StringBuilder(); foreach (KeyValuePair<string, string> fPair in fColumns) { if (fColumnBuilder.Length !=0) fColumnBuilder.Append(", "); fColumnBuilder.Append(fPair.Key); if (fValueBuilder.Length != 0) fValueBuilder.Append(", "); fValueBuilder.Append(string.Format("'{0}'", fPair.Value)); } string fCommandText = string.Format("insert into ({0}) values ({1})", fColumnBuilder.ToString(), fValueBuilder.ToString()); Response.Write(fCommandText); } }
知识改变命运,奋斗成就人生!- 已标记为答案 KeFang Chen 2009年4月22日 3:26
全部回复
-
HTML
<asp:FileUpload ID="File1" runat="server" Width="290px" /> <asp:FileUpload ID="File2" runat="server" Width="290px" /> <asp:FileUpload ID="File3" runat="server" Width="290px" /> <asp:FileUpload ID="File4" runat="server" Width="290px" />
CS
protected void Page_Load(object sender, EventArgs e) { } protected void btnSubmit_Click(object sender, EventArgs e) { HttpFileCollection fFiles = HttpContext.Current.Request.Files; Dictionary<string, string> fColumns = new Dictionary<string,string>(); foreach (string fKey in fFiles.AllKeys) { // 这里仅文件名为例构造出 SQL 语句并不保存到数据库中 string fValue = fFiles[fKey].FileName; if (!String.IsNullOrEmpty(fValue)) { if (fKey == "File1") fColumns.Add("fujian1", fValue); else if (fKey == "File2") fColumns.Add("fujian2", fValue); else if (fKey == "File3") fColumns.Add("fujian3", fValue); else if (fKey == "File4") fColumns.Add("fujian4", fValue); } } if (fColumns.Count != 0) { StringBuilder fColumnBuilder = new StringBuilder(); StringBuilder fValueBuilder = new StringBuilder(); foreach (KeyValuePair<string, string> fPair in fColumns) { if (fColumnBuilder.Length !=0) fColumnBuilder.Append(", "); fColumnBuilder.Append(fPair.Key); if (fValueBuilder.Length != 0) fValueBuilder.Append(", "); fValueBuilder.Append(string.Format("'{0}'", fPair.Value)); } string fCommandText = string.Format("insert into ({0}) values ({1})", fColumnBuilder.ToString(), fValueBuilder.ToString()); Response.Write(fCommandText); } }
知识改变命运,奋斗成就人生!- 已标记为答案 KeFang Chen 2009年4月22日 3:26