首页 > 解决方案 > 我想编写显示使用 FileUpload 的 ASP.NET 代码

问题描述

我写了一个代码,当用户点击上传按钮时,word文件应该被保存并重定向到第二页,word文件保存在给定的路径中,但它没有打印任何输出(它向我显示空白页)

第一页.aspx

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class pg_upload : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }
    protected void Button1_Click(object sender, EventArgs e)
    {
    string fname = FileUpload1.FileName;

    if (FileUpload1.HasFiles)
    {
        Label1.Text = "Selected file uploaded";

    }
    else {
        Label1.Text += "Select a file";
        return;
    }
    int flength=FileUpload1.PostedFile.ContentLength;
    Int32 a = flength * 1024;
    if (flength > a)
    {
        Label1.Text += "File Out Of Range";
    }
    if (FileUpload1.PostedFile.ContentType != "application/msword")
    {
        Label1.Text += "Upload word files only";
    }
   FileUpload1.SaveAs(Server.MapPath("~")+"/Myfolder/"+
FileUpload1.FileName);
    Response.Redirect("pg_viewUploads.aspx");
}

}

我的第二页.aspx

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Web;
 using System.Web.UI;
   using System.Web.UI.WebControls;
  public partial class pg_viewUploads : System.Web.UI.Page
   {
    protected void Page_Load(object sender, EventArgs e)
   {
    string fpath=Server.MapPath("~")+"/Myfolder";
    string [] files=Directory.GetFiles(fpath);
    string[] name=new string[files.Length];
    FileInfo fi;
    int i=0;
    foreach (string s in files)
    {
        fi = new FileInfo(s);
        name[i] = "/Myfolder/" + fi.Name;
        i++;

    }
    StringBuilder sb = new StringBuilder();
    sb.Append("<table>");
    i = 0;
    sb.Append("<tr>");
    for (int j = 1; j < 3; j++)
    {
        sb.Append("<tr>");
        for (int k = 1; k <3; k++)
        {
            if (i > files.Length-1)
            { return; }
            sb.Append("<a href="+ name[i] + ">" +name[i]+"</a>");
            i++;

        }
        sb.Append("</tr>");

    }
    sb.Append("</tr>");
    sb.Append("</table>");
    Label b = new Label();
    b.Text = sb.ToString();
    b.Visible = true;
    PlaceHolder1.Controls.Add(b);


}
}

这张图片将为您详细介绍如何运行代码 请提供解决方案。任何帮助将不胜感激,在此先感谢

标签: asp.netfilefile-upload

解决方案


我看到的第一个问题是您将标签嵌入<tr>标签中<tr>。这在 HTML 中是不允许的。

我看到的第二个问题是你正在循环j并且k没有明显的原因。遍历files数组就足够了。


推荐阅读