步步为营-70-asp.net简单练习(文件的上传和下载)

大文件的上传一般通过FTP协议,而一般小的文件可以通过http协议来完成

1 通过asp.net 完成图片的上传

1.1 创建html页面

  注意:1 method="post" ;2 enctype="multipart/form-data"; 3 <input type="file" />  

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
</head>
<body>
    <form method="post" action="FileUpload.ashx" enctype="multipart/form-data">
        <input type="file" id="imgUpLoad" name="imgUpLoad" />
        <input type="submit" value="提交" />
    </form>
</body>
</html>

FileUpload.html

1.2 创建一般处理程序.ashx
  注意:1 创建文件保存路径

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

namespace _05_文件的上传与下载
{
    /// <summary>
    /// FileUpload 的摘要说明
    /// </summary>
    public class FileUpload : IHttpHandler
    {

        public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/html";

            //01 获取文件
            HttpPostedFile pf = context.Request.Files["imgUpLoad"];
            //02 创建文件保存路径
            string savePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory+"Upload/"+pf.FileName);
            //03 保存文件
            pf.SaveAs(savePath);
            //04 显示上传的文件
            context.Response.Write("<img src=‘Upload/"+pf.FileName+"‘/> ");
        }

        public bool IsReusable
        {
            get
            {
                return false;
            }
        }
    }
}

FileUpload.ashx

2 上传文件格式的验证,假设规定只能上传,gif的图片

  我们可以在HTML通过jQuery来进行验证,也可以在.ashx中进行验证

2.1 修改ashx文件

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

namespace _05_文件的上传与下载
{
    /// <summary>
    /// FileUpload 的摘要说明
    /// </summary>
    public class FileUpload : IHttpHandler
    {

        public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/html";

            //01 获取文件
            HttpPostedFile pf = context.Request.Files["imgUpLoad"];
            //01-01 获取文件后缀名
            string extName = pf.FileName.Substring(pf.FileName.LastIndexOf(‘.‘));
            if (extName != ".gif" || extName != ".Gif")
            {
                context.Response.Write("请上传.gif图片");
                return;
            }
            //02 创建文件保存路径
            string savePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory+"Upload/"+pf.FileName);
            //03 保存文件
            pf.SaveAs(savePath);
            //04 显示上传的文件
            context.Response.Write("<img src=‘Upload/"+pf.FileName+"‘/> ");
        }

        public bool IsReusable
        {
            get
            {
                return false;
            }
        }
    }
}

ashx

2.2 引入jQuery,修改HTML页面

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <script src="http://localhost:62225/Script/jquery-1.7.1.min.js"></script>
    <title></title>
    <script>
        $(function () {
            $("form").submit(function () {
                var fname = $("#imgUpLoad").val();
                var extname = fname.substring(fname.lastIndexOf(‘.‘));
                if (extname != ".gif" || extname != ".Gif") {
                    alert("请上传.gif图片");
                    return false;
                }

            });
        });
    </script>
</head>
<body>
    <form method="post" action="FileUpload.ashx" enctype="multipart/form-data">
        <input type="file" id="imgUpLoad" name="imgUpLoad" />
        <input type="submit" value="提交" />
    </form>
</body>
</html>

html

3 如果文件只放在Upload文件夹下,随着时间的增长,文件势必会越来越多不利于寻找,可以根据日期建立相应文件夹

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

namespace _05_文件的上传与下载
{
    /// <summary>
    /// FileUpload 的摘要说明
    /// </summary>
    public class FileUpload : IHttpHandler
    {

        public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/html";

            //01 获取文件
            HttpPostedFile pf = context.Request.Files["imgUpLoad"];
            //01-01 获取文件后缀名
            string extName = pf.FileName.Substring(pf.FileName.LastIndexOf(‘.‘));
            if (extName != ".gif" && extName != ".GIF")
            {
                context.Response.Write("请上传.gif图片");
                return;
            }
            //02 创建文件保存路径
            string savePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory+"Upload\\");
            //02-01 根据日期创建文件夹
            DateTime dt = DateTime.Now;
            savePath += dt.Year + "\\" + dt.Month + "\\" + dt.Day ;
            if (!Directory.Exists(savePath))
            {
                //创建文件夹
                Directory.CreateDirectory(savePath);
            }
            //02-02文 件名为当前时间

            savePath += "\\"+ dt.ToString().Replace(‘:‘,‘-‘)+".gif";
            //03 保存文件
            pf.SaveAs(savePath);
            //04 显示上传的文件
             context.Response.Write("<img src=‘" + savePath.Substring(savePath.IndexOf("Upload")) + "‘/> ");
        }

        public bool IsReusable
        {
            get
            {
                return false;
            }
        }
    }
}

ashx

时间: 2024-10-13 16:06:35

步步为营-70-asp.net简单练习(文件的上传和下载)的相关文章

asp.net如何实现文件的上传和下载

上传 Boolean fileOk = false;            //指定文件路径,pic是项目下的一个文件夹:-表示当前网页所在的文件夹            HttpPostedFile postedFile = request.Files[0];            string filename = DateTime.Now.ToString("yyyyMMddhhmmss");            string filePath = "/upload/

SpringMVC实现文件的上传和下载

前些天一位江苏经贸的学弟跟我留言问了我这样一个问题:"用什么技术来实现一般网页上文件的上传和下载?是框架还是Java中的IO流".我回复他说:"使用SpringMVC框架可以做到这一点,因为SpringMVC为文件的上传提供了直接的支持,但需要依赖Apache提供Commons FileUpload组件jar包."鉴于这个问题,我上网也百度了一下,网上很多都是介绍的使用IO流来实现文件的上传和下载,也有说到框架的,但介绍的并不是很完整,今天小钱将和大家介绍使用Spr

Servlet方式实现文件的上传和下载

文件的上传和下载需要两个jar包  commons-fileupload-1.2.2.jar和commons-io-2.0.1.jar JSP页面 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Trans

Python 进行 SSH 操作,实现本地与服务器的链接,进行文件的上传和下载

Python 进行 SSH 操作,实现本地与服务器的链接,进行文件的上传和下载 2018年5月26日 19:03 阅读 375 评论 7 我本地和服务器的连接一直使用的是 Xshell 5,而在与服务器进行文件操作的时候使用的是 Xshell 推荐安装的一个工具 Xftp 5,然而,昨天自己想着从服务器下载备份好的的数据库文件到本地的时候发现这个文件传输工具居然过期不能用了,好气啊!于是没办法(机智如我)只好用 Python 来实现 SSH 的连接,顺便从服务器批量下载一些文件,实现自动化. 项

Spring MVC 实现文件的上传和下载

文件上传是项目开发中最常见的功能.为了能上传文件,必须将表单的method设置为POST,并将enctype设置为multipart/form-data.只有在这样的情况下,浏览器才会把用户选择的文件以二进制数据发送给服务器. 一旦设置了enctype为multipart/form-data,浏览器即会采用二进制流的方式来处理表单数据,而对于文件上传的处理则涉及在服务器端解析原始的HTTP响应.在2003年,Apache Software Foundation发布了开源的Commons File

.net web开发——文件的上传和下载

以ASP.NET Core WebAPI 作后端 API ,用 Vue 构建前端页面,用 Axios 从前端访问后端 API ,包括文件的上传和下载. 准备文件上传的API #region 文件上传  可以带参数 [HttpPost("upload")] public JsonResult uploadProject(IFormFile file, string userId) { if (file != null) { var fileDir = "D:\\aaa"

使用Loadrunner进行文件的上传和下载

最近使用loadrunner中需要录制文件的上传和下载,上传功能模块利用录制可以直接实现,下载无法实现,在网上找到了一段代码,自己动手试验了下,发现没有用 辛苦找到的,还是记录下吧 (1)LoadRunner上传文件 web_submit_data("importStudent.do", "Action=https://testserver/console/importStudent.do", "Method=POST", "EncTy

【Linux命令】--(4)文件打包上传和下载

文件打包上传和下载 +++++++++++++++++++++++++++++++用SecureCRT来上传和下载文件tar命令gzip命令+++++++++++++++++++++++++++++++先把计划放着,待老夫国庆把它学完!

【php】文件的上传与下载

一. 生活中常见的地方: a) 例如邮箱.空间.文库.百度云.微爱等地方,都可以看到文件的上传和下载的应用,因此,上传和下载的功能非常重要!二. PHP当中的文件上传和下载 a) 我们需要进行一些设置,来使我们的表单具有提交文件的功能! b) 客户端的设置: i. 其实就是表单的设置: 1. input表单项中的type属性值必须是file类型 2. form表单头部需要添加一个通行证:enctype="multipart/form-data",含义为让服务器认识到我们要在这个表单中上