`

ASP.NET通过HTML的上传文件标签来上传文件

    博客分类:
  • .NET
阅读更多
    开始以为会很麻烦,需要什么读二进制流写二进制流的,结果自己试了一下,还真简单。。直接一个saveAs就行了。。。
下面是HTML代码:
<form name="uploadForm" method="post" enctype="multipart/form-data" action="handler/upload.ashx">
    <input type="file" id="imgFile" name="imgFile" style="width:220px;" />
    <input type="submit" value="上传" />
</form>


在这里我是用了一般处理程序来进行文件的上传,代码如下:
<%@ WebHandler Language="C#" Class="upload" %>

/*
 * 作者: 牛腩
 * 创建时间: 2009-10-28 15:40:39
 * Email: 164423073@qq.com
 * 说明: 上传
 */

using System;
using System.Web;

public class upload : IHttpHandler {
    
    public void ProcessRequest (HttpContext context) {
        context.Response.ContentType = "text/plain";
        // 下面这句是最重要的,取得HttpPostedFile对象后就可以调用他的SaveAs方法了
        HttpPostedFile imgFile = HttpContext.Current.Request.Files["imgFile"];
        string savePath = context.Server.MapPath("~/upload/"+imgFile.FileName);
        imgFile.SaveAs(savePath);
        context.Response.Write("<br>保存成功!文件名:"+imgFile.FileName);
    }
 
    public bool IsReusable {
        get {
            return false;
        }
    }

}


分享到:
评论
9 楼 k04110411 2014-05-08  
jhlovett 写道
牛哥,想问下
public void ProcessRequest (HttpContext context) {
        context.Response.ContentType = "text/plain";
        HttpPostedFile imgFile = context.Request.Files["imgName"];
        String fileName=imgFile.FileName;
        fileName = fileName.Substring(fileName.LastIndexOf("\\")+1);
        String savePath = context.Server.MapPath("../Upload/") + fileName;
        imgFile.SaveAs(savePath);
        context.Response.Write("<script>alert('上传成功!');</script>");        context.Response.Redirect("~/Default5.aspx");
    }

红色子脚本部分没办法显示哦!!!
怎么做才能显示呢?



context.Response.ContentType = "text/plain";
改成
context.Response.ContentType = "text/html";
8 楼 guanguozhi 2010-08-29  
<form id='myform' action="UpLoad.ashx" target="goshi" method="post" enctype="multipart/form-data">
    <div>
        <input id="File1" name="File1" type="file" />
        
        <iframe name="goshi" id="goshi" style="display:none"></iframe>
        <input id="Button1" type="submit" value="Ajax上传文件" />
    </div>
    <div id="msg"></div>
    </form>


 context.Response.ContentType = "text/plain";
        HttpPostedFile imgFile = HttpContext.Current.Request.Files[ "File1" ];
        string ext = Path.GetExtension ( imgFile.FileName );
        Guid fileID = Guid.NewGuid ( );
        string FileName = fileID + "." + ext;
        string savePath = context.Server.MapPath ( "UpLoadFile/" + FileName );
        imgFile.SaveAs ( savePath );


但是如果上传的文件太大的话,就会报错。。。。。
7 楼 guanguozhi 2010-08-29  
context.Response.ContentType = "text/plain";
        HttpPostedFile imgFile = HttpContext.Current.Request.Files[ "File1" ];
        string ext = Path.GetExtension ( imgFile.FileName );
        Guid fileID = Guid.NewGuid ( );
        string FileName = fileID + "." + ext;
        string savePath = context.Server.MapPath ( "UpLoadFile/" + FileName );
        imgFile.SaveAs ( savePath );
6 楼 qingniaoRK 2010-04-24  
啊,事实证明,无法使用。。。。有哪位能使用的嘛?把代码贴出啦呀
5 楼 qingniaoRK 2010-04-24  
还不错了,收藏了。我看看下啊。
4 楼 jhlovett 2010-02-05  
牛哥,想问下
public void ProcessRequest (HttpContext context) {
        context.Response.ContentType = "text/plain";
        HttpPostedFile imgFile = context.Request.Files["imgName"];
        String fileName=imgFile.FileName;
        fileName = fileName.Substring(fileName.LastIndexOf("\\")+1);
        String savePath = context.Server.MapPath("../Upload/") + fileName;
        imgFile.SaveAs(savePath);
        context.Response.Write("<script>alert('上传成功!');</script>");        context.Response.Redirect("~/Default5.aspx");
    }

红色子脚本部分没办法显示哦!!!
怎么做才能显示呢?

3 楼 jhlovett 2010-02-05  
  public void ProcessRequest (HttpContext context) {
        context.Response.ContentType = "text/plain";
        HttpPostedFile imgFile = context.Request.Files["imgName"];
        String fileName=imgFile.FileName;
        fileName = fileName.Substring(fileName.LastIndexOf("\\")+1);
        String savePath = context.Server.MapPath("../Upload/") + fileName;
        imgFile.SaveAs(savePath);
        context.Response.Write("保存成功!文件名:" + fileName);
    }
2 楼 jhlovett 2010-02-05  
貌似取入径当事不对啊。。。

context.Server.MapPath("~/upload/"+imgFile.FileName);  
1 楼 aXinNo1 2009-11-07  
地方是大方师傅答复是否多少佛挡杀佛多少佛挡杀佛多少佛挡杀佛的

相关推荐

    asp.net如何上传文件

    总的来说,ASP.NET文件上传涉及HTML表单、服务器端处理、文件保存和可能的HTTP处理程序。理解这些核心概念对于构建可靠的文件上传功能至关重要。同时,考虑到安全性,必须实施适当的验证和权限控制,以保护服务器免...

    ASP.NET多文件上传

    总结来说,ASP.NET多文件上传涉及了HTTP协议、HTML表单、ASP.NET控件、服务器端处理、文件验证、数据库操作和用户体验等多个方面。理解和掌握这些知识点是构建高效、安全且用户友好的多文件上传功能的关键。

    ASP.NET中实现多文件上传实例

    - ASP.NET MVC和ASP.NET Core提供了更现代和灵活的API来处理文件上传,如`IFormFile`接口。 10. **最佳实践**: - 分离文件存储逻辑,使其可配置,以便日后可以切换到云存储服务,如Azure Blob存储或AWS S3。 - ...

    asp.net文件上传示例

    此外,ASP.NET MVC和ASP.NET Core提供了不同的API和方法来处理文件上传,但核心概念是一样的。对于ASP.NET Core,你可能需要使用`IFormFile`接口,而路由和控制器的配置也会有所不同。 总结来说,这个"asp.net文件...

    asp.net 多文件上传

    ASP.NET多文件上传是Web开发中的一个重要功能,它允许用户一次性上传多个文件,极大地提高了用户交互体验。在ASP.NET框架中,实现这个功能通常涉及到HTML控件、服务器端代码以及数据库存储等多个方面。以下是对这一...

    asp.net实现单文件上传

    在ASP.NET中,单文件上传是一项常见的功能,用于允许用户通过网页将本地计算机上的单个文件上传到服务器。本文将详细讲解如何实现这一功能,并提供相关的源代码。 首先,我们需要在HTML页面上创建一个`&lt;input&gt;`标签...

    asp.net 文件上传源码

    ASP.NET中的文件上传主要通过`HttpPostedFileBase`类来处理。当用户在表单中包含一个`&lt;input type="file"&gt;`元素并提交表单时,服务器端会接收到一个`HttpPostedFileBase`对象,可以用来读取和保存上传的文件。 2. ...

    Asp.net同时上传多个文件

    在Asp.net中,文件上传主要通过`&lt;input&gt;`标签的`type="file"`属性来实现。当用户选择文件后,这些文件会被封装在一个名为`HttpPostedFileBase`的对象中,可以通过`Request.Files`集合访问。然而,单个`...

    asp.net mvc文件上传

    ASP.NET MVC 文件上传是Web应用程序开发中的一个常见需求,它涉及到客户端与服务器之间的数据交互,尤其是处理用户上传的文件。本示例将详细介绍如何在ASP.NET MVC框架下实现这一功能,包括图片保存到数据库、从...

    .NET二进制上传文件控件

    开发者可以利用ASP.NET的内置机制,结合自定义的代码逻辑,来实现高效、安全的文件上传功能。在实际项目中,这样的控件通常会包含文件大小限制、多文件上传、进度显示等功能,以满足不同应用场景的需求。

    [上传下载]ASP.NET同时上传多个文件_aspxcnup(ASP.NET源码).rar

    在ASP.NET中,开发者经常需要处理用户通过网页上传文件的需求,尤其是当用户需要一次性上传多个文件时,这种功能的实现就显得尤为重要。本压缩包中的源码可能是对这一功能的具体实现,为其他开发者提供了一个参考...

    asp.net进度条上传文件

    在ASP.NET中,文件上传主要依赖于`&lt;input type="file"&gt;`标签,用户通过这个控件选择本地文件,然后通过HTTP POST请求将文件数据发送到服务器。然而,由于HTTP协议的限制,传统的文件上传方式无法在客户端实时获取...

    ASP.net+JQ上传文件实例

    5. **服务器端验证**:ASP.NET可以通过各种验证控件或自定义逻辑来确保上传的文件符合预设的规则,如大小限制、文件类型检查等。 6. **状态反馈**:使用jQuery,可以在客户端实时显示上传进度和结果,如进度条、...

    ASP.NET MVC3.0图片文件上传及管理程序-经典源码

    通过这个经典源码,开发者可以深入理解ASP.NET MVC3.0中的文件上传和管理机制,学习如何在实际项目中应用这些技术,提升自己的Web开发技能。同时,此源码也可作为模板,为其他类似需求提供参考。

    ASP.NET多文件上传 带预览

    ASP.NET多文件上传功能在Web开发中非常常见,特别是在用户需要一次性提交多个文件,如图片、文档等场景下。此示例"ASP.NET多文件上传 带预览"着重展示了如何实现用户在上传文件前预览图片的功能,以及如何将这些文件...

    JS+asp.net+图片上传+预览+支持多上传+上传前预览

    在本文中,我们将深入探讨如何使用JavaScript(JS)与ASP.NET技术实现图片上传、预览以及支持多文件上传和上传前预览的功能。这个技术组合是现代Web应用中常见的需求,尤其是在用户交互丰富的网站和应用中。 首先,...

    asp.net一次性上传多个文件

    综上所述,实现ASP.NET中的一次性多文件上传,我们需要利用HTML5的`multiple`属性让用户选择多个文件,然后在服务器端通过遍历Request.Files集合来处理这些文件。同时,为了优化用户体验,可以结合前端技术实现异步...

    ASP.NET+jQuery 批量文件上传控件及示例程序

    在ASP.NET中,我们可以使用多种方式来实现文件上传,如HTML `&lt;input type="file"&gt;` 标签、ASP.NET FileUpload 控件或自定义控件。 jQuery则是一个流行的JavaScript库,简化了JavaScript的DOM操作、事件处理和动画...

    .net单文件上传

    在ASP.NET中,这一过程主要通过`&lt;asp:FileUpload&gt;`控件来实现,它允许用户选择本地计算机上的文件,并在提交表单时将文件内容发送到服务器。 以下是关于.NET单文件上传的详细步骤和相关知识点: 1. **创建ASP.NET ...

Global site tag (gtag.js) - Google Analytics