这是我的代码
protected void Page_Load(object sender, EventArgs e)
{
tbusrcompdate.Attributes.Add("readonly", "readonly");
if (!IsPostBack)
{
//using session state
if (Session["userid"] == null)
{
Session["userid"] = "Compliance_Tracker";
lblsessionID.Text = Session["userid"].ToString();
}
else
{
lblsessionID.Text = Session["userid"].ToString();
}
//populating ddlTaskId
string query = "select * from Compliance_Tracker.dbo.tasklistManager where STATUS='1';";
string columnname = "TASK ID";
string datavaluefield = "TASK ID";
obj7.PopulateCombo(ddlTaskID, query, columnname, datavaluefield);
//default values in labels
string query1 = "select top 1 [DESC] from Compliance_Tracker.dbo.tasklistManager where STATUS = '1';";
lblDescOutput.Text = obj7.ExecuteScalar(query1).ToString();
string query2 = "select top 1 FREQUENCY from Compliance_Tracker.dbo.tasklistManager where STATUS = '1';";
lblFrequencyOutput.Text = obj7.ExecuteScalar(query2).ToString();
}
}
protected void ddlTaskID_SelectedIndexChanged(object sender, EventArgs e)
{
string selectedtext = ddlTaskID.SelectedValue.ToString();
string query = "select [DESC] from Compliance_Tracker.dbo.tasklistManager where Compliance_Tracker.dbo.tasklistManager.[TASK ID] ='" + selectedtext + "';";
lblDescOutput.Text = obj7.ExecuteScalar(query).ToString();
}
protected void btnAdd_Click(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
if (fuDocpath.HasFiles)
{
try
{
DateTime now = DateTime.Now;
lbldateStamp.Text = now.ToString("mm_dd_yyyy_hh_mm_ss");
string basicPath = Server.MapPath("~/Uploaded_Files/");
string foldername = lblsessionID.Text + "_" + lbldateStamp.Text;
string folderpath = (basicPath + foldername + "/");
Directory.CreateDirectory(folderpath);
foreach (HttpPostedFile file in fuDocpath.PostedFiles)
{
string filename = Path.GetFileName(fuDocpath.FileName);
string folderpath1 = folderpath + "/";
fuDocpath.SaveAs(folderpath1 + filename);
lblName.Text = lblName.Text+"|" + filename;
lblerror.Text = string.Empty;
}
}
catch (Exception ex)
{
lblerror.Text = "File couldn't be uploaded." + ex.Message;
lblName.Text = string.Empty;
}
}
}
现在,使用上面的代码,即使我可以完全上传多个文件,我也只能进行单一选择。所以我需要知道,如果有一种方法可以使用fileupload工具一次选择多个文件,还是我必须使用任何其他工具? 这是我的aspx代码
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder3" Runat="Server">
<form id="Form1" runat="server" style="border-style: none; border-width: inherit; border-color: #008000; background-color:#33CC33; height:588px; width:669px; background-image: url('new.jpg'); background-repeat: no-repeat;" method="post" enctype="multipart/form-data">
<h1 style="height: 34px">
TRANSACTION MANAGER TABLE
</h1>
<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
<asp:Label ID="lblsessionID" runat="server" Text=""></asp:Label>
<asp:Label ID="lbldateStamp" runat="server" Text=""></asp:Label>
<table id="table1" style="border-style: none; height:188px; width:549px; margin-left:30px; border-collapse: collapse; margin-top: 0px;">
<tr>
<td style="width: 137px; height:30px;"><asp:Label ID="lblTaskID" runat="server" Text="TASK ID" Width="70px"></asp:Label></td>
<td style="height:30px"><asp:DropDownList ID="ddlTaskID" runat="server" Height="20px" style="margin-left: 50px" Width="126px" OnSelectedIndexChanged="ddlTaskID_SelectedIndexChanged" AutoPostBack="true" ></asp:DropDownList></td>
</tr>
<tr>
<td style="width:137px; height:30px;"><asp:Label ID="lblDesc" runat="server" Text="DESC" Width="70px"></asp:Label></td>
<td style ="height:30px"><asp:Label ID="lblDescOutput" runat="server" style="margin-left:50px" Width="126px" Height="20px"></asp:Label></td>
</tr>
<tr>
<td style="width: 137px; height:30px;"><asp:Label ID="lblFrequency" runat="server" Text="FREQUENCY" Width="132px"></asp:Label></td>
<td style="height:30px"><asp:Label ID="lblFrequencyOutput" runat="server" style="margin-left:50px" Width="126px" Height="20px"></asp:Label></td>
</tr>
<tr>
<td style="width: 137px; height:30px;"><asp:Label ID="lblDocpath" runat="server" Text="DOC PATH" Width="107px"></asp:Label></td>
<td style="height:30px">
<asp:FileUpload ID="fuDocpath" runat="server" AllowMultiple="true" />
<asp:Button ID="Button1" runat="server" Text ="Upload File" OnClick="Button1_Click" />
<asp:Label ID="lblerror" runat="server" Text="" style="margin-left: 50px"></asp:Label>
<asp:Label ID="lblName" runat="server" Text=""></asp:Label>
</td>
</tr>
<tr>
<td style="width: 137px; height:30px;"><asp:Label ID="lblusrcompdate" runat="server" Text="USER COMPLETE DATE" Width="147px"></asp:Label></td>
<td style="height:30px"><asp:TextBox ID="tbusrcompdate" runat="server"></asp:TextBox>
<asp:ImageButton ID ="imgbtncalender" runat="server" ImageUrl="~/home-calendar-button.jpg" Height="17px" style="margin-left: 16px" Width="16px" />
<asp:CalendarExtender ID="CalendarExtender1" runat="server" TargetControlID="tbusrcompdate" Format="dd/MM/yyyy" PopupButtonID="imgbtncalender"></asp:CalendarExtender>
</td>
</tr>
</table><br />
<asp:Button ID="btnAdd" runat="server" Text="ADD" Height="27px" Width="80px" style="margin-left:235px" OnClick="btnAdd_Click"/>
</form>
答案 0 :(得分:1)
实际问题是IE和更新后我现在能够选择多个文件。 另一个问题是我的代码实际上只有一个文件被选中,因为我没有正确获取文件名。好吧,实际上代码是在我声明文件名字符串
的部分foreach (HttpPostedFile files in fuDocpath.PostedFiles)
{
string filename = Path.GetFileName(fuDocpath.FileName);
string folderpath1 = folderpath + "/";
fuDocpath.SaveAs(folderpath1 + filename);
lblName.Text = lblName.Text+"|" + filename;
lblerror.Text = string.Empty;
}
现在,主要问题是我没有获得正确的文件名。所以,错误是
string filename = Path.GetFileName(files.Filename)
而不是fuDocpath.filename。 愚蠢的错误fml !!!
答案 1 :(得分:0)
这不是您特定代码的答案。但它是上传多个文件的替代方案。
对于上传多个文件,我不做所有这些事情,但有一个称为asp:AjaxFileUpload
控件的内容
<asp:AjaxFileUpload ID="AjaxFileUpload1" ToolTip="Uplaod File" OnUploadComplete="AjaxFileUpload1_UploadComplete" runat="server" />
代码背后:
protected void AjaxFileUpload1_UploadComplete(object sender, AjaxControlToolkit.AjaxFileUploadEventArgs e)
{
try
{
string str = System.IO.Path.GetFileName(e.FileName);
string fullpath = Path.GetFullPath(str);
string str1 = "Your insert Query";
con.Open();
cmd = new SqlCommand(str1, con);
// your command parameters to add
cmd.Parameters.AddWithValue("@Image_Caption", str);
cmd.Parameters.AddWithValue("@Image_Path", "Images/" + str);
cmd.Parameters.AddWithValue("@Image_Name", str);
cmd.ExecuteNonQuery();
con.Close();
string filePath = Server.MapPath("~/Images/") + System.IO.Path.GetFileName(e.FileName);
AjaxFileUpload1.SaveAs(filePath);
}
catch (Exception eep)
{
throw;
}
}