asp.net上传文件

第一种方法

前端:

    <div>
        单文件上传
        <form enctype="multipart/form-data" method="post" action="upload.aspx">
            <input type="file" name="files" />
            <input type="submit" value="上传" />
        </form>
    </div>

后端:

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

public partial class upload_upload : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        HttpContext context = HttpContext.Current;
        context.Response.ContentType = "text/plain";
        //获取所有的上传文件
        //如果上传的文件超过了4M,则会报异常[超过了最大请求长度。],需要在Web.config配置
        HttpFileCollection hfc = context.Request.Files;
        //如果是hfc.Count为0,则可以认为是直接请求该ashx处理程序
        for (int i = 0; i < hfc.Count; i++)
        {
            HttpPostedFile hpf = hfc[i];
            if (hpf.ContentLength > 0)
            {
                //大小限制
                int maxSize = 2 * 1024 * 1024;  //最大是2M(转换为字节)
                if (hpf.ContentLength > maxSize)
                {
                    context.Response.Write("上传文件大小超出限制");
                    return;
                }
                //扩展名限制
                string[] exts = { "image/jpg", "image/jpeg", "image/gif", "image/png" };
                if (!exts.Contains(hpf.ContentType.ToLower()))
                {
                    context.Response.Write("必须上传图片文件");
                    return;
                }
                string fileName = Path.GetFileName(hpf.FileName);
                hpf.SaveAs(context.Server.MapPath("~/upload/" + fileName));
            }
        }

        获取指定name的文件上传
        该方式如果是html5的<input type="file" name="files" multiple />则始终是获取第一个上传的文件,multiple
        是支持多个文件上传,所以如果上传文件多于一个,则会丢失
        //HttpPostedFile hpf = context.Request.Files["files"];
        //if (hpf!= null && hpf.ContentLength > 0)
        //{
        //    hpf.SaveAs(context.Server.MapPath("~/UpLoad/" + Path.GetFileName(hpf.FileName)));
        //}
        context.Response.Write("上传成功");
    }
}

第二种方法

前端(1)

<div id="divImg">

<input type="file" class="file" name="file" multiple="multiple" id="file"/>

<button type="button" οnclick="uploadFile()">上传</button>

</div>

js

function uploadFile(){
        let files = $("#file").prop("files");
        let formData = new FormData();
        // 对每个文件进行循环处理
        for (let i = 0; i < files.length; i++) {
            let file = files[i];
            // 添加文件到formData
            formData.append('files['+i+']', file, file.name);
        }
        $.ajax({
            url: ctx + "/file/upload",
            type: 'POST',
            data: formData,
            processData: false,
            contentType: false,
            async: false,
            cache: false,
            success: function(data) {
                console.log(data);
            }
        });
    }

前端(2)

js

   <form id="fileUploadForm" enctype="multipart/form-data">
        <input type="file" id="fileInput">
        <button type="submit">上传</button>
    </form>

    <script>
        $(document).ready(function() {
            $('#fileUploadForm').submit(function(e) {
                e.preventDefault();

                var fileInput = document.getElementById('fileInput');
                var file = fileInput.files[0];

                var reader = new FileReader();
                reader.onload = function(e) {
                    var fileData = e.target.result;

                    var formData = new FormData();
                    formData.append('file', file);

                    $.ajax({
                        url: 'upload.php',
                        type: 'POST',
                        data: formData,
                        processData: false,
                        contentType: false,
                        success: function(response) {
                            console.log(response);
                        },
                        error: function(xhr, status, error) {
                            console.error(error);
                        }
                    });
                };
 

后端同每一种方法

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/132447.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Amazon EC2 安全可调用的云虚拟主机服务器

&#x1f497;wei_shuo的个人主页 &#x1f4ab;wei_shuo的学习社区 &#x1f310;Hello World &#xff01; Amazon EC2 打造全新的科技链 Amazon Elastic Compute Cloud&#xff08;Amazon EC2&#xff09;提供最广泛、最深入的计算平台&#xff0c;拥有超过 500 个实例&…

【C++ 学习 ㉝】- C++11 使用 using 定义别名

众所周知&#xff0c;在 C 中可以使用 typedef 定义类型别名&#xff0c;例如&#xff1a; typedef unsigned int u_int; typedef void(*pf)(int, int); 但它也有一些限制&#xff0c;比如&#xff0c;无法定义类模板别名。当我们需要实现一个 key_type 固定为 string&#x…

50个网络运维工作者必须知道的小知识!建议收藏!

运维人员对公司互联网业务所依赖的基础设施、基础服务、线上业务进行稳定性加强&#xff0c;进行日常巡检发现服务可能存在的隐患&#xff0c;对整体架构进行优化以屏蔽常见的运行故障&#xff0c;多数据中接入提高业务的容灾能力。 通过监控、日志分析等技术手段&#xff0c;…

服务器经常被攻击的原因

很多中小型企业都是选择虚拟主机服务器&#xff0c;是把一个服务器分成很多个给很多企业一起共用&#xff0c;可能同一个 IP服务器上就有很多个不同企业的网站&#xff0c;这个时候如果跟你同一个IP服务器的网站遭到DDoS攻击&#xff0c;就很有可能会影响到你的网站也无法正常访…

golang的panic与recover基本使用

package mainimport ("errors""fmt" )func main() {// panic会使得程序会终止//panicDemo1()//panicDemo2()//fmt.Println(panicDemo3())panicDemo5()fmt.Println("程序正常执行...") }panicDemo1函数测试 func panicDemo1() {panic("抛出…

【数据集映射】(含完整可行Python代码)Yolo格式数据(txt)转RCNN格式数据(coco)

1&#xff1a;需求背景 目标检测研究中&#xff0c;通常不同的模型需要不同的数据格式&#xff0c;如yolo需要txt、rcnn需要coco等&#xff0c;因此就需要对标注的数据格式进行转换。 通常的数据格式有txt、coco(json)、Pascal VOC、xml等。 本文的需求是txt转coco&#xff…

Java中各个版本JDK分别有哪些常见的垃圾回收算法?它们的适用场景和开启方法是什么?

Java中各个版本JDK分别有哪些常见的垃圾回收算法&#xff1f;它们的使用场景和开启方法是什么&#xff1f; 1.1 JDK 1.8 中的垃圾回收算法1.2 JDK 11 中的垃圾回收算法1.3 JDK17中的垃圾回收算法 1.1 JDK 1.8 中的垃圾回收算法 Java 8引入了一些不同类型的垃圾回收算法&#x…

nginx配置支持PHP

前言 Nginx是通过php-fpm来通信的&#xff0c;所以需要修改的监听9000端口。 当 Nginx 配置支持 PHP 时&#xff0c;它可以将 PHP 请求转发给 PHP-FPM&#xff0c;由 PHP-FPM 处理请求并返回结果。 要配置 Nginx 支持 PHP&#xff0c;你需要在 Nginx 配置文件中添加一个 locat…

如何修改CentOS登录时默认目录

查了一下&#xff0c;有说改/etc/passwd文件的&#xff0c;有说改.bashrc文件的&#xff0c;也有说改.bash_profile&#xff0c;修改的方法都不一样。 我要改的是root登录时的目录&#xff0c;最后修改了/root/.bash_profile文件&#xff0c;只要加一行cd 路径就可以。 这个文…

关于中间件技术

中间件是一种独立的系统软件或服务程序&#xff0c;可以帮助分布式应用软件在不同的技术之间共享资源。中间件可以&#xff1a; 1、负责客户机与服务器之间的连接和通信&#xff0c;以及客户机与应用层之间的高效率通信机制。 2、提供应用的负载均衡和高可用性、安全机制与管…

单片机如何写好一个模块的驱动文件

搞单片机&#xff0c;MCU:STM32/GD32/HC32&#xff0c;通讯模组&#xff1a;4G/WIFI/BT/433&#xff0c;总线&#xff1a;USB/CAN/K/232/485&#xff0c;各种常见的传感器&#xff0c;都接触过。 一开始学习单片机的时候没有形成很好的编写习惯&#xff0c;如LED点亮/熄灭/闪烁…

awk精确筛选

awk精确筛选: $(><):用于对比数值 $n~"字符串"代表第n个字段包括某个字符 $n!~"字符串"代表第n个字段不包括某个字符 $n"字符串"代表第n个字段为某个字符 $n!"字符串"代表第n个字段不为某个字符 $NF:最后一个字段 awk -F…

044_第三代软件开发-保存PDF

第三代软件开发-保存PDF 文章目录 第三代软件开发-保存PDF项目介绍保存PDF头文件源文件使用 关键字&#xff1a; Qt、 Qml、 pdf、 painter、 打印 项目介绍 欢迎来到我们的 QML & C 项目&#xff01;这个项目结合了 QML&#xff08;Qt Meta-Object Language&#xff…

【Windows-软件-FFmpeg】(01)通过CMD运行FFmpeg进行操作,快速上手

前言 通过"cmd"运行"ffmpeg"进行操作&#xff0c;快速上手&#xff1b; 实操 【实操一】 说明 使用"ffmpeg"来合并音频文件和视频文件 &#xff1b; 环境 Windows 11 专业版&#xff08;22621.2428&#xff09;&#xff1b; 代码 &#xf…

Java 性能优化之直接使用成员变量 VS 拷贝副本

背景 刷到一个大佬的 CSDN 博客&#xff0c;仔细看了一下性能优化专栏。联想到我们的日常开发工作&#xff0c;由于业务比较简单&#xff0c;很容就忽略性能问题。但是&#xff0c;性能优化的一下常见思路&#xff0c;也早有耳闻。看了一个 Java 性能优化的方法 「减少操作指令…

Linux进程的优先级

Linux进程的优先级 &#x1f4df;作者主页&#xff1a;慢热的陕西人 &#x1f334;专栏链接&#xff1a;Linux &#x1f4e3;欢迎各位大佬&#x1f44d;点赞&#x1f525;关注&#x1f693;收藏&#xff0c;&#x1f349;留言 本博客主要内容讲解Linux中进程的优先级&#xff0…

安防监控系统EasyCVR视频汇聚平台,如何实现视频汇聚?

关注我们的朋友都知道&#xff0c;EasyCVR平台最初就是以汇聚为核心而进行打造的&#xff0c;那到底什么是汇聚平台呢&#xff1f;又如何进行视频资源汇聚&#xff1f;简单来说&#xff0c;视频汇聚平台是指能够从不同的视频源&#xff08;例如直播、点播等&#xff09;收集、整…

node.js快死了!Bun 1.0 正在改变 JavaScript 游戏规则

在进一步讨论之前&#xff0c;我们需要解释什么是 javascript 运行时以及为什么我们应该关心它的速度。 想象一下&#xff0c;你用JavaScript写了一个故事&#xff0c;你需要有人大声朗读。JavaScript 运行时就像那个友好的叙述者&#xff0c;让你的故事栩栩如生&#xff01;这…

Nginx篇---第二篇

系列文章目录 文章目录 系列文章目录一、请列举Nginx和Apache 之间的不同点二、在Nginx中,如何使用未定义的服务器名称来阻止处理请求?三、请解释Nginx服务器上的Master和Worker进程分别是什么?一、请列举Nginx和Apache 之间的不同点 二、在Nginx中,如何使用未定义的服务器…

[移动通讯]【Carrier Aggregation-13】【Carrier Aggregation】

前言&#xff1a; 前面分享过不同note CA 技术文档 这里主要参考 4G|ShareTechnote 《Carrier Aggregation》 CA SCell 添加的小区的流程&#xff1a; SCell addition and removal&#xff1a; 1 The carrier aggregation additional SCells cannot be activated immediately…