欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

ASP.NET实现文件上传

程序员文章站 2022-06-03 12:24:34
...

新建ASP.NET Web应用程序

单文件上传

效果

ASP.NET实现文件上传

页面代码

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm.aspx.cs" Inherits="WebDropzone.WebForm" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta name="viewport" content="width=device-width" />
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
        <table style="width: 343px">
            <tr>
                <td style="width: 100px">单文件上传</td>
                <td style="width: 100px"></td>
            </tr>
            <tr>
                <td style="width: 100px">
                    <asp:FileUpload ID="FileUpload1" runat="server" Width="475px" />
                </td>
                <td style="width: 100px">
                    <asp:Button ID="bt_upload" runat="server" OnClick="bt_upload_Click" Text="上传" /></td>
            </tr>
            <tr>
                <td style="width: 100px; height: 21px;">
                    <asp:Label ID="lb_info" runat="server" ForeColor="Red" Width="183px"></asp:Label></td>
                <td style="width: 100px; height: 21px"></td>
            </tr>
        </table>
    </form>
</body>
</html>

后台代码

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Web;
using System.Web.Mvc;

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

        }

        protected void bt_upload_Click(object sender, EventArgs e)
        {
            try
            {
                if (FileUpload1.PostedFile.FileName == "")
                {
                    this.lb_info.Text = "请选择文件!";
                }
                else
                {
                    string filepath = FileUpload1.PostedFile.FileName;
                    string filename = filepath.Substring(filepath.LastIndexOf("\\") + 1);
                    string serverpath = Server.MapPath("File/") + filename;
                    FileUpload1.PostedFile.SaveAs(serverpath);
                    this.lb_info.Text = "上传成功!";
                }
            }
            catch (Exception ex)
            {
                this.lb_info.Text = "上传发生错误!原因是:" + ex.ToString();
            }
        }
    }
}

多文件上传

效果

ASP.NET实现文件上传

页面代码

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm.aspx.cs" Inherits="WebDropzone.WebForm" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <meta name="viewport" content="width=device-width" />
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
        <div>
            <table style="width: 343px">
                <tr>
                    <td style="width: 100px">多文件上传</td>
                    <td style="width: 100px"></td>
                </tr>
                <tr>
                    <td style="width: 100px">
                        <asp:FileUpload ID="FileUpload1" runat="server" Width="475px" />
                    </td>
                    <td style="width: 100px"></td>
                </tr>
                <tr>
                    <td style="width: 100px">
                        <asp:FileUpload ID="FileUpload2" runat="server" Width="475px" /></td>
                    <td style="width: 100px"></td>
                </tr>
                <tr>
                    <td style="width: 100px">
                        <asp:FileUpload ID="FileUpload3" runat="server" Width="475px" /></td>
                    <td style="width: 100px"></td>
                </tr>
                <tr>
                    <td style="width: 100px">
                        <asp:Button ID="bt_upload" runat="server" OnClick="bt_upload_Click" Text="一起上传" />
                        <asp:Label ID="lb_info" runat="server" ForeColor="Red" Width="183px"></asp:Label></td>
                    <td style="width: 100px"></td>
                </tr>
            </table>
        </div>
    </form>
</body>
</html>

后台代码

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Web;
using System.Web.Mvc;

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

        }

        protected void bt_upload_Click(object sender, EventArgs e)
        {

            if ((FileUpload1.PostedFile.FileName == "" && FileUpload2.PostedFile.FileName == "") && FileUpload3.PostedFile.FileName == "")
            {
                this.lb_info.Text = "请选择文件!";
            }
            else
            {
                HttpFileCollection myfiles = Request.Files;
                for (int i = 0; i < myfiles.Count; i++)
                {
                    HttpPostedFile mypost = myfiles[i];
                    try
                    {
                        if (mypost.ContentLength > 0)
                        {
                            string filepath = mypost.FileName;
                            string filename = filepath.Substring(filepath.LastIndexOf("\\") + 1);
                            string serverpath = Server.MapPath("File/") + filename;
                            mypost.SaveAs(serverpath);
                            this.lb_info.Text = "上传成功!";
                        }
                    }
                    catch (Exception error)
                    {
                        this.lb_info.Text = "上传发生错误!原因:" + error.ToString();
                    }

                }

            }
        }

    }
}

在实际应用中,这种方式是不可行的,因为不可能让用户通过多次点击多个按钮,进行多个文件的上传,而是可以直接选择多个文件,直接实现上传,其次,界面太丑,单纯的通过ASP.ENT服务器控件实行文件上传功能很少使用。

相关标签: asp.net