C#,asp.net后台得到post过来的参数和文件?

兔子爱葱 2014-06-01 09:46:48
向一个xx.aspx网页post了一些参数和文件,那么xx.aspx.cs里面如何得到这些参数和文件并把文件存储起来?
给段代码参考下呗
...全文
7301 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
zlq12345678 2015-10-13
  • 打赏
  • 举报
回复
请教一下,this.form1.Action = "TestPostFile.ashx"; 提交之后如何获得context.Response.Write(fs[0].FileName);这句话的回复数据啊
  • 打赏
  • 举报
回复
注意,不要使用aspx。 aspx是重量级的“页面”,不是轻量级的获取提交数据的组件。花费巨大资源来创建aspx使得它显得“重而无当”。
  • 打赏
  • 举报
回复
存储,我懒得告诉你。这种东西“满大街”都是demo代码。 给你写个ashx获取数据的简单例子吧: 首先应该写一个导航页面,它向你的ashx文件提交数据。可以创建一个aspx,名叫TestPostFile.aspx,如下
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="TestPostFile.aspx.cs" Inherits="TestPostFile"
     EnableViewState="false" ClientIDMode="Static" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
        <asp:Label ID="Label1" runat="server" Text="参数xyz"></asp:Label>:<asp:TextBox ID="xyz" runat="server"></asp:TextBox>
        <hr />
        <asp:FileUpload ID="FileUpload1" runat="server" />
        <hr />
        <asp:Button ID="Button1" runat="server" Text="好,可以提交了!" />
    </form>
</body>
</html>
注意,因为无需回发,因此我们禁用页面的ViewState。同时由于实在是太简单了,因此我们使用Static模式来处理客户端id。 这个文件的codebehind代码是
using System;

public partial class TestPostFile : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        this.form1.Action = "TestPostFile.ashx";
    }
}
它在提交数据时,提交了一个文本内容,同时提交了一个文件。你当然可以放上去更多的提交内容。 而目标ashx文件可以这样写
<%@ WebHandler Language="C#" Class="TestPostFile" %>

using System;
using System.Web;
using System.Diagnostics;

public class TestPostFile : IHttpHandler
{

    public void ProcessRequest(HttpContext context)
    {
        context.Response.ContentType = "text/plain";
        var p1 = context.Request.Form["xyz"];
        var fs = context.Request.Files;
        if (fs.Count > 0)
        {
            //你可以使用 fs[0].SaveAs(.....) 保存文件
            context.Response.Write(fs[0].FileName);
        }
        Debug.Assert(p1 != null && fs != null);
    }

    public bool IsReusable
    {
        get
        {
            return false;
        }
    }

}
在那个 Debug 行设置断点调试,你可以看到相应的变量已经获取了客户端提交的所有值,包括提交的文件。
bwangel 2014-06-02
  • 打赏
  • 举报
回复
参数用Request.Forms["参数名“] //为安全起见,最好不要用ToString()因为可能是nul值,另外写方法转化成string 文件用Request.Files["文件参数名"]得到一个HttpPostedFile对象,其中有文件的所有信息
devmiao 2014-06-01
  • 打赏
  • 举报
回复
用Request.Forms[参数名].ToString

62,241

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧