前端通过FormData上传文件到服务器端

2023-11-17

前端代码

html

<input type="file" accept=".zip" onchange="uploadFile(this.value);">

JavaScript

function uploadFile(file) {
    if (!file) {
        return;
    }

    // upload params
    var data = {
        UserID: top.BDCGlobal.USERINFO.user_id,
        ProjectID: inProjInfo.ID,
        flag: "jnkcydoc_importZIP"
    };

    var formData = new FormData();
    formData.append("Files", $("#btn_importZIP input[type=file]").prop("files")[0]);
    for (var d in data) {
        formData.append(d, data[d]);
    }

    // upload
    $.ajax({
        url: UploadFileService.url,
        type: "post",
        data: formData,
        cache: false,
        processData: false,
        contentType: false,
        dataType: "json",
        success: function (res) {
            if (res.success) {
                console.log("import ZIP success");
            }
        },
        error: function (eres) {
            console.log("import ZIP err");
        }
    });

}

后端c#解析代码

public void importZIP(HttpContext context)
{
      HttpFileCollection files = context.Request.Files;

      string UserID = context.Request.Form["UserID"];
      string ProjectID = context.Request.Form["ProjectID"];

      if (files.Count < 1)
      {
          context.Response.Write("{\"success\":0,\"message\":\"未找到文件!\"}");
          HttpContext.Current.ApplicationInstance.CompleteRequest();
          return;
      }

      // 单文件,取出最后一个
      HttpPostedFile file = files[files.Count - 1];


      // check file ext
      string extStr = file.FileName.Substring(file.FileName.LastIndexOf('.')).ToLower();
      
      if (extStr != ".zip")
      {
          context.Response.Write("{\"success\":0,\"message\":\"不是标准的ZIP文件!\"}");
          HttpContext.Current.ApplicationInstance.CompleteRequest();
          return;
      }

      string basePath = AppDomain.CurrentDomain.BaseDirectory;//文件基目录
      string relativePath = "Files\\zip\\" + UserID + "\\";//服务器上的相对路径
      string path = basePath + relativePath;
      if (Directory.Exists(path))
          Directory.Delete(path, true);
      Directory.CreateDirectory(path);

      string fileName = file.FileName;
      file.SaveAs(path + fileName);
       
      string result = "{\"success\": 1, \"result\": 1}"; 
      context.Response.Write(result);
      HttpContext.Current.ApplicationInstance.CompleteRequest();
      return; 
  }


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

前端通过FormData上传文件到服务器端 的相关文章

  • 如何使从 C# 调用的 C(P/invoke)代码“线程安全”

    我有一些简单的 C 代码 它使用单个全局变量 显然这不是线程安全的 所以当我使用 P invoke 从 C 中的多个线程调用它时 事情就搞砸了 如何为每个线程单独导入此函数 或使其线程安全 我尝试声明变量 declspec thread 但
  • 访问外部窗口句柄

    我当前正在处理的程序有问题 这是由于 vista Windows 7 中增强的安全性引起的 特别是 UIPI 它阻止完整性级别较低的窗口与较高完整性级别的窗口 对话 就我而言 我想告诉具有高完整性级别的窗口进入我们的应用程序 它在 XP 或
  • 改变 JavaScript 中的顶部填充

    以下是我在 css 中设置顶部填充的方法 body font size font size px margin 0 padding 100px 0 20px 0 width 100 important 如何使用最简单的 javascript
  • ASP.NET Core 3.1登录后如何获取用户信息

    我试图在登录 ASP NET Core 3 1 后获取用户信息 如姓名 电子邮件 id 等信息 这是我在登录操作中的代码 var claims new List
  • 如何定义一个可结构化绑定的对象的概念?

    我想定义一个concept可以检测类型是否T can be 结构化绑定 or not template
  • 为什么 C# 2.0 之后没有 ISO 或 ECMA 标准化?

    我已经开始学习 C 并正在寻找标准规范 但发现大于 2 0 的 C 版本并未由 ISO 或 ECMA 标准化 或者是我从 Wikipedia 收集到的 这有什么原因吗 因为编写 审查 验证 发布 处理反馈 修订 重新发布等复杂的规范文档需要
  • 两个类可以使用 C++ 互相查看吗?

    所以我有一个 A 类 我想在其中调用一些 B 类函数 所以我包括 b h 但是 在 B 类中 我想调用 A 类函数 如果我包含 a h 它最终会陷入无限循环 对吗 我能做什么呢 仅将成员函数声明放在头文件 h 中 并将成员函数定义放在实现文
  • 如何从浏览器向服务器发送“页面将关闭”消息?

    我想向每个 html 文档添加一个脚本 JavaScript 该脚本向服务器发送两条消息 页面确实打开了 页面将关闭 此消息包含页面打开的时间 打开消息应在文档加载时 或加载完成时 发送 这是简单的部分 The close message
  • 如何在当前 Visual Studio 主机内的 Visual Studio 扩展中调试使用 Roslyn 编译的代码?

    我有一个 Visual Studio 扩展 它使用 Roslyn 获取当前打开的解决方案中的项目 编译它并从中运行方法 程序员可以修改该项目 我已从当前 VisualStudioWorkspace 成功编译了 Visual Studio 扩
  • C# 动态/expando 对象的深度/嵌套/递归合并

    我需要在 C 中 合并 2 个动态对象 我在 stackexchange 上找到的所有内容仅涵盖非递归合并 但我正在寻找能够进行递归或深度合并的东西 非常类似于jQuery 的 extend obj1 obj2 http api jquer
  • 为什么使用小于 32 位的整数?

    我总是喜欢使用最小尺寸的变量 这样效果就很好 但是如果我使用短字节整数而不是整数 并且内存是 32 位字可寻址 这真的会给我带来好处吗 编译器是否会做一些事情来增强内存使用 对于局部变量 它可能没有多大意义 但是在具有数千甚至数百万项的结构
  • 如何实例化 ODataQueryOptions

    我有一个工作 简化 ODataController用下面的方法 public class MyTypeController ODataController HttpGet EnableQuery ODataRoute myTypes pub
  • 使用 next.js 进行服务器端渲染与传统 SSR

    我非常习惯 SSR 意味着页面得到完全刷新并从服务器接收完整 HTML 的方法 其中根据后端堆栈使用 razor pub other 进行渲染 因此 每次用户单击导航链接时 它只会向服务器发送请求 整个页面将刷新 接收新的 HTML 这就是
  • 在 WPF 中使用 ReactiveUI 提供长时间运行命令反馈的正确方法

    我有一个 C WPF NET 4 5 应用程序 用户将用它来打开某些文件 然后 应用程序将经历很多动作 读取文件 通过许多插件和解析器传递它 这些文件可能相当大 gt 100MB 因此这可能需要一段时间 我想让用户了解 UI 中发生的情况
  • C++ 继承的内存布局

    如果我有两个类 一个类继承另一个类 并且子类仅包含函数 那么这两个类的内存布局是否相同 e g class Base int a b c class Derived public Base only functions 我读过编译器无法对数
  • 在 iOS 7 Safari 中,如何区分通过边缘滑动与后退/前进按钮的 popstate 事件?

    在 iOS 7 Safari 中 现在有两种后退 前进导航方式 使用底部的传统后退 前进按钮箭头或从屏幕边缘滑动 我正在使用动画在 ajax 应用程序中的页面之间进行转换 但如果用户通过边缘滑动进行导航 我不想触发该转换 因为这本身就是一个
  • 什么是 WKWebView 中的 WKErrorDomain 错误 4

    fatal error LPWebView encounters an error Error Domain WKErrorDomain Code 4 A JavaScript exception occurred UserInfo 0x7
  • 在OpenGL中,我可以在坐标(5, 5)处精确地绘制一个像素吗?

    我所说的 5 5 正是指第五行第五列 我发现使用屏幕坐标来绘制东西非常困难 OpenGL 中的所有坐标都是相对的 通常范围从 1 0 到 1 0 为什么阻止程序员使用屏幕坐标 窗口坐标如此严重 最简单的方法可能是通过以下方式设置投影以匹配渲
  • Mono 应用程序在非阻塞套接字发送时冻结

    我在 debian 9 上的 mono 下运行一个服务器应用程序 大约有 1000 2000 个客户端连接 并且应用程序经常冻结 CPU 使用率达到 100 我执行 kill QUIT pid 来获取线程堆栈转储 但它总是卡在这个位置
  • 如何确定 CultureInfo 实例是否支持拉丁字符

    是否可以确定是否CultureInfo http msdn microsoft com en us library system globalization cultureinfo aspx我正在使用的实例是否基于拉丁字符集 我相信你可以使

随机推荐

  • 浮点数在计算机中存储方式、十六进制(HEX)和浮点类型(float、double)转换

    目录 浮点数在计算机中存储方式 举例 8 25和120 5在内存中真正的存储方式 浮点类型转换为十六进制 方法1 用地址用指针 方法2 用共用体 方法3 使用memcpy 十六进制转换为浮点类型 浮点数在计算机中存储方式 https www
  • 多家支付机构停发代理商分润

    分润是POS代理推广的主要收入来源 一旦分润被掐断 意味着POS代理失去了赚钱的来源 近段时间以来 多家支付公司因停发POS代理分润在支付行业内引起了较大争议 涉及十几家支付公司 近日 多家支付公司代理商在公开投诉平台发帖投诉称 后台分润提
  • 详述Java中的异常

    我是目录 一 异常的解决方案 二 异常的基本用法 三 Java异常体系 四 自定义异常 五 面试阐述 所谓 异常 指的就是程序在 运行时 出现错误时通知调用者的一种机制 我们平时把 System out println 拼写错了 写成了 s
  • 第一章 pandas基础-练习题

    第一章 pandas基础 练习题 首先要导入对应的模块 import pandas as pd import numpy as np Ex1 口袋妖怪数据集 现有一份口袋妖怪的数据集 下面进行一些背景说明 代表全国图鉴编号 不同行存在相同数
  • QT基础(三)之添加资源文件及界面美化

    QT基础之添加资源文件及界面美化 QT可以做出非常炫酷的图形界面 通过添加一些资源文件可以对我们的界面进行美化 下面以添加图片资源 美化标签为例 对QT Creator添加资源文件进行学习 一 添加资源文件 1 给工程添加一个新的资源文件
  • C++之标准库(STL)容器List的用法

    文章目录 list说明 list定义 list使用 list赋值操作 list数据元素插入和删除操作 list数据存取 list大小操作 list反转排序 list访问 list说明 链表是一种物理存储单元上非连续 非顺序的存储结构 数据元
  • QtCreator 打不开UI文件

    最近遇到了ubuntu下的QtCreator打开ui 文件时 QT Creator 界面变黑色 程序崩溃 然后自动退出 这儿软件我用了1年了 莫名其妙出现了这个问题 很是费解 重装了QtCreator和QtDesigner 还是不行 在网上
  • Endnote 导入参考文献的时候,格式错误太多了。et.al错误,国标GBT7714在endnote中的详细配置教程,适用于本科,硕士论文文献插入的模板

    文章目录 一 Endnote文献GBT7714下载 0 起因与发展 1 1进行chinese GBT7714 2015的下载 二 Endnote格式配置及参数的设置 2 1 开始修改配置 重要配置详细分解 英文期刊 中文期刊 三 实战插入文
  • 用matlab进行拉普拉斯滤波,matlab拉普拉斯算子锐化滤波

    一 本文主要是在给出拉普拉斯锐化算子公式的情况下 在matlab上实现代码设计 拉普拉斯算子是最简单的各向同性微分算子 有几种常用的滤波模板 本文使用的是八邻域模板 如下所示 image png 其对应的计算公式为 image png 因此
  • 应用程序,操作系统,驱动程序的关系

    硬件和软件 计算机资源分为硬件资源和软件资源 硬件资源包括cpu 内存 显卡 网卡 声卡 硬盘等等 软件资源包括各种程序 每个硬件完成特定的功能 比如显卡完成在显示设备上显示图形 声卡实现声音的处理 再比如 你用qq发送一段文字给一个同学
  • VUE3使用JSON编辑器

    1 先看看效果图 可以自行选择展示效果 2 这是我在vue3项目中使用的JSON编辑器 首先引入第三方插件 npm install json editor vue3 yarn add json editor vue3 3 引入到项目中 导入
  • 强化学习实践二 :理解gym的建模思想

    David Silver的强化学习公开课有几个特点 个人感觉首要的一个特点是偏重于讲解理论 而且有时候为了讲清楚一个理论的来龙去脉 也顺带讲了很多不常用的理论 还有一个特点是小例子很多 这些例子有时候不仅是为了讲清楚一个复杂的算法 而且通过
  • [Redis] Redis 安装部署

    Redis Redis 安装部署 简介 Redis是一个开源的使用ANSI C语言编写 遵守BSD协议 支持网络 可基于内存亦可持久化的日志型 Key Value 数据库 并提供多种语言的API 它通常被称为数据结构服务器 因为值 valu
  • 查看Postgresql的连接状况

    今天遇到一个问题 就是pg一直报错 说有太多的客户端连接到数据库上面 但现在不知道是什么程序连接 pg默认的max connection是100 我并没有修改过 以为平时公司内部用 应该够了 但现在貌似这100个连接都被消耗掉 在网上goo
  • 【CSS】如何用css做一个爱心

    摘要 HTML的标签都比较简单 入门非常的迅速 但是CSS是一个需要我们深度挖掘的东西 里面的很多样式属性掌握几个常用的便可以实现很好看的效果 下面我便教大家如何用CSS做一个爱心 前期预备知识 明白正方形的画法 明白圆形的画法 明白什么是
  • Android下基于Http协议的网络摄像机开发

    这段时间在做Android平台下的网络摄像机的兼容 摄像机的通讯采用Http1 1协议 现将遇到的问题简单总结一下 1 Http协议中需要用到身份认证部分 不同厂家的摄像机所采取的方案可能有所不同 但是大体无外乎都是将摄像机的用户名和密码简
  • 江科大自化协STM32学习笔记(部分C语言知识、STM32简介和GPIO口的使用)

    本篇文章是根据B站UP主江科大自化协的教学视频STM32入门教程 2023持续更新中 在了解 学习与实操后整理的学习笔记 内容部分来自UP主的课程资料 并包含了一些个人的理解 如有谬误欢迎指正 详细知识点可以观看UP主的视频进行了解 希望大
  • php如何读取解析eml文件以及生成网页的示例分享

    这篇文章主要介绍了PHP读取 解析eml文件及生成网页的方法 结合实例形式分析了PHP操作eml文件的读取 解析 转换等相关实现技巧与注意事项 并附带demo源码供读者下载参考 需要的朋友可以参考下 本文实例讲述了PHP读取 解析eml文件
  • Linux及Windows下编译exosip和osip2源码

    eXosip库及编译流程简介 1 eXosip库的简介 1 1 osip简介 osip2是一个开放源代码的sip协议栈 是开源代码中不多使用C语言写的协议栈之一 它具有短小简洁的特点 专注于sip底层解析使得它的效率比较高 但缺点也很明显
  • 前端通过FormData上传文件到服务器端

    前端代码 html