当前位置: 首页 > news >正文

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.lryc.cn/news/219896.html

相关文章:

  • JavaEE平台技术——预备知识(Web、Sevlet、Tomcat)
  • 基础课23——设计客服机器人
  • mybatis在springboot当中的使用
  • 如何处理前端本地存储和缓存
  • 导轨式安装压力应变桥信号处理差分信号输入转换变送器0-10mV/0-20mV/0-±10mV/0-±20mV转0-5V/0-10V/4-20mA
  • 人体姿态估计和手部姿态估计任务中神经网络的选择
  • odoo16 one2many字段的 domain
  • 一份优秀测试用例的设计策略
  • 自动驾驶行业观察之2023上海车展-----智驾供应链(3)
  • 倒计时丨3天后,我们直播间见!
  • c语言经典算法—二分查找,冒泡,选择,插入,归并,快排,堆排
  • 网站SSL证书有什么用
  • ubuntu 20.04 server安装
  • 造数工具调研
  • Linux文件系统目录结构
  • CANoe新建XML自动化Test Modules
  • 国内某发动机制造工厂RFID智能制造应用解决方案
  • 【SpringCloud Alibaba -- Nacos】Linux 搭建 Nacos 集群
  • 程序员使用 ChatGPT的 10 种最佳方式
  • 各种各类好用热门API推荐
  • 高速串行总线——SATA
  • 不用流氓软件,如何在户外使用手机听下载到家中电脑里的音乐文件呢?
  • 函数数组指针示例
  • 万宾科技管网水位监测预警,管网水位的特点有哪些?
  • vue element admin master 去掉登陆
  • 没有MES管理系统,先用数据采集设备能有用吗
  • 【JAVA学习笔记】61 - 线程入门、常用方法、同步机制,以及本章作业(难点)
  • C#开发的OpenRA游戏之步兵射击(2)
  • 基于Pytorch框架的LSTM算法(一)——单维度单步滚动预测(2)
  • 安全操作(安卓推流)程序