首页 > 编程语言 >C# 文件上传下载

C# 文件上传下载

时间:2023-12-08 14:15:15浏览次数:34  
标签:文件 false form C# 上传下载 路径 ajax 上传

1.首先,文件的上传下载我们需要了解什么是虚拟路径和物理路径

物理路径就是绝对路径,虚拟路径就是相对路径。绝对路径是指定文件的绝对位置。 大家都知道,在我们平时使用计算机时要找到需要的文件就必须知道文件的位置,而表示文件的位置的方式就是路径,例如只要看到这个路径:c:/website/img/photo.jpg我们就知道photo.jpg文件是在c盘的website目录下的img子目录中。这样完整的描述文件位置的路径就是绝对路径。我们不需要知道其他任何信息就可以根据绝对路径判断出文件的位置。 所谓相对路径,顾名思义就是自己相对与目标位置。不论将这些文件放到哪里,只要他们的相对关系没有变,就不会出错。

2.简单的form表单文件上传

<form method="post" enctype="multipart/form-data" id="file_upload">

  <p>图片预览:</p>
  <div id="test-image-preview"></div>
  <p>
    <input type="file" id="test-image-file" name="test" accept="image/gif, image/jpeg, image/png, image/jpg">
  </p>
<p id="test-file-info"></p>
</form>

这是一个简单的form表单,文件提交之后, $("form")[0]   // <form method=​"post" enctype=​"multipart/​form-data" id=​"file_upload">​…​</form>​
取到外层的 from 节点,然后 初始化一个 FormData 对象

var _formData = new FormData($("form")[0]),

然后ajax 提交就完成了。   (此时可以通过   $("#test-image-file")[0].files[0]  去获取上传图片的详细信息

FormData里面的数据可以理解为私有变量。所以在控制台是看不出来的,要用FormData的get 方法才能拿到。

_formData.get('test');  这样子 就能拿到上面那个 input name 是test的值了

$.ajax({
  url : "http://xxxxxxxxxxxxxx",
  type:"post",
  data:_formData,
  processData:false

})

3.ajax上传文件

例子:在页面上传一个csv文件,web服务器端用php解析上传的csv文件并入库
前端页面代码:

 

form的enctype必须是multipart/form-data才可以上传多个文件,ajax通过FormData来上传数据,ajax的cache、processData、contentType均要设置为false。
cache设为false是为了兼容ie8,防止ie8之前版本缓存get请求的处理方式。
contentType设置为false原因:https://segmentfault.com/a/1190000007207128
processData:要求为Boolean类型的参数,默认为true。默认情况下,发送的数据将被转换为对象(从技术角度来讲并非字符串)以配合默认内容类型"application/x-www-form-urlencoded"。如果要发送DOM树信息或者其他不希望转换的信息,请设置为false。

php代码:

php通过$_FILES读取上传的文件,通过tmp_name可以获取上传文件路径,通过fgetcsv函数读取csv文件数据
作者:ShutLove
链接:https://www.jianshu.com/p/380661f02997
来源:简书 5.MVC文件上传 前端: @using(Html.BeginForm("UpLoadFile", "Home",  FoemMethod.Post,  new  {enctype = "multipart / form-data"})) { <div>文件上传:<input  type="file"  name="myFile"></div> <input  type="submit"  value="提交"> } 后台

 

  7.MVC文件下载 客户端

 

控制器

 

后台

 

 

参考文章:http://blog.ncmem.com/wordpress/2023/12/08/c-%e6%96%87%e4%bb%b6%e4%b8%8a%e4%bc%a0%e4%b8%8b%e8%bd%bd/

欢迎入群一起讨论

 

 

标签:文件,false,form,C#,上传下载,路径,ajax,上传
From: https://www.cnblogs.com/songsu/p/17887019.html

相关文章

  • ResourceBundle使用详解
    ResourceBundle使用详解这个类主要用来解决国际化和本地化问题。国际化和本地化可不是两个概念,两者都是一起出现的。可以说,国际化的目的就是为了实现本地化。比如对于“取消”,中文中我们使用“取消”来表示,而英文中我们使用“cancel”。若我们的程序是面向国际的(这也是软件发展的......
  • 21_DMA多通道ADC
    1、硬件 使用ADC硬件触发,触发DMA转运,外设数据均存储在ADC_DR寄存器中,外设寄存器地址不用自增,存储器为SRAM,定义一个数组存储转运来的数据,存储器的地址需要自增,数据宽度为半字。 2、接线图使用外设与ADC多通道完全相同,此次通过DMA转运数据 3、软件程序 ......
  • 深入理解Dockerfile:构建容器化应用的基石
    Docker已经成为现代软件开发和部署的标配工具之一,它的轻量级容器技术使得应用可以在不同环境中快速部署和运行。Dockerfile是构建Docker镜像的蓝图,定义了从基础镜像到最终应用镜像的一系列步骤。本篇博文将深入解析Dockerfile中常见的指令,带你逐步了解如何构建高效、可维护的Docker......
  • dict( [1,2] ) # TypeError: cannot convert dictionary update sequence element
    dict([1,2])#TypeError:cannotconvertdictionaryupdatesequenceelement#0toasequence#listtupleset都可以,并且list(list([1,2]))==[1,2]#仍然是[1,2]list({"key":"value"})#只保留键名......
  • Java synchronized
    synchronized是Java中最基本的线程同步机制之一,通过在方法或代码块上添加synchronized关键字,可以确保只有一个线程可以访问该方法或代码块。它是Java中实现线程安全的重要机制之一。synchronized关键字的使用方式有两种:1、修饰实例方法当synchronized关键字修饰一个实例方法时,......
  • Java synchronized 、ReentrantLock和Semaphore
    synchronized在Java中,使用synchronized关键字可以实现对代码块或方法的同步访问,以确保多个线程不会同时访问共享资源。当一个线程获取了对象的锁(即进入了synchronized代码块),其他线程如果也希望获取该对象的锁,它们将被阻塞,直到拥有锁的线程执行完毕并释放锁。因此,在某种意义上,使......
  • 从ClickHouse通往MySQL的几条道路
    一、应用背景简介ClickHouse是Yandex(俄罗斯最大的搜索引擎)开源的一个用于实时数据分析的基于列存储的数据库,其处理数据的速度比传统方法快100-1000倍。ClickHouse的性能超过了目前市场上可比的面向列的DBMS,每秒钟每台服务器每秒处理数亿至十亿多行和数十千兆字节的数据。它......
  • 已解决:若依更换日志EasyExcel框架导出报错 java.lang.NoClassDefFoundError: org/apac
    先描述一下当时的场景回忆看到出错了,我就想可能是哪个路径写错了,或者导依赖名字写对,或者说是多了少了标点符号什么的。然而,还是想简单了,检查重启后发现问题并没有解决。于是就把所有我改过的地方检查了一遍,检查和这个依赖相关的代码。发现还是没啥关系后来去找百度、百度给的......
  • 最强无缓存PCIe 4.0 SSD之一!长江存储致态TiPlus7100 4TB评测:满盘写入缓外2.3GB/s
    一、前言:长江存储首款自有品牌致态4TBSSD其实早在年初,就有不少搭载长江存储闪存颗粒的国产4TBSSD,不过长江存储的自有品牌致态,直到现在才推出这款致态TiPlus71004TB。当然有句话叫好货不怕晚,致态TiPlus71004TB是一款非常优秀的PCIe4.0SSD。致态TiPlus71004TB采用了长江......
  • 外贸CRM是什么?外贸CRM有什么作用?
     外贸行业对客户管理的追求日益提高,为了应对客户需求的变化和多元性,外贸企业需要借助CRM管理系统实现智能管理。下面,我们将详细探讨外贸CRM的概念、特点和具体应用。什么是外贸CRM?外贸CRM是指针对外贸行业的客户关系管理系统,它可以帮助外贸企业管理客户信息、跟进客户订单、......