所有上传的文件都不会显示在链接中

时间:2014-05-31 12:29:11

标签: c# asp.net

我写的是

 protected void btnUpload_Click(object sender, EventArgs e)
    {
        HttpFileCollection fileCollection = Request.Files;
        for (int i = 0; i < fileCollection.Count; i++)
        {
            HttpPostedFile uploadfile = fileCollection[i];
            string fileName = Path.GetFileName(uploadfile.FileName);
            if (uploadfile.ContentLength > 0)
            {
                uploadfile.SaveAs(Server.MapPath("~/UploadFiles/") + fileName);
                 lblMessage.Text += fileName + "Saved Successfully<br>";
                 hyperlnk.Text = fileName.ToString() + "Saved Successfully<br>";
               // hyperlnk.Attributes.Add("href", Server.MapPath("/UploadFiles/") + fileName);
                 hyperlnk.NavigateUrl="~/UploadFiles/" + fileName;
                //lblMessage.Text= "<a href=" + "/UploadFiles/" + fileName +">"+fileName+"</a>";
            }
        }
    }

当我们上传多个文件时,其中只有一个显示在链接中,如屏幕截图所示 enter image description here

请帮帮我

3 个答案:

答案 0 :(得分:1)

您似乎有一个超链接对象,可通过名为hyperlnk的变量访问。

如果您想拥有多个链接,则需要创建多个链接。

(您可以看到所有标签文字,因为您在循环的每次迭代中将附加添加到标签文本中,而您替换超链接text / url。你不能只是附加到超链接,因为你想要有几个独立的链接。)

答案 1 :(得分:1)

我认为你需要在每次迭代时创建1个超链接,而不是在每次迭代时为同一个超链接指定不同的值。

E.g:

for (int i = 0; i < fileCollection.Count; i++)
        {
             HyperLink link = new HyperLink();
             link.Text = "whatever";

             form1.Controls.Add(link);
        }

我会通过添加显示链接的必要代码来扩展这个示例,但我并不熟悉Web窗体。

答案 2 :(得分:0)

您需要在页面上添加Panel类型的面板而不是超链接,并将其用于链接的容器,代码如下所示:

panel.Controls.Clear();
for (int i = 0; i < fileCollection.Count; i++)
{
    HttpPostedFile uploadfile = fileCollection[i];
    string fileName = Path.GetFileName(uploadfile.FileName);
    if (uploadfile.ContentLength > 0)
    {
        uploadfile.SaveAs(Server.MapPath("~/UploadFiles/") + fileName);
        lblMessage.Text += fileName + "Saved Successfully<br>";
        HyperLink dynamHyperLink = new HyperLink();
        dynamHyperLink.Text = fileName.ToString() + "Saved Successfully<br>";
        // hyperlnk.Attributes.Add("href", Server.MapPath("/UploadFiles/") + fileName);
        dynamHyperLink.NavigateUrl = "~/UploadFiles/" + fileName;

        panel.Controls.Add(dynamHyperLink);
        //lblMessage.Text= "<a href=" + "/UploadFiles/" + fileName +">"+fileName+"</a>";
    }
}