WebAPI+Form表单上传文件
上传的时候还是遇到一些问题的,在文章开头罗列一下,希望帮到跟我遇到同样问题的人
问题一:GET 请求与POST请求
起初我使用的是GET 请求,发现不行,后改为了POST,具体原因尚不明确,不过一般向服务器发送数据还是用POST吧,后来发现网上有使用GET方式上传文件的,但是貌似不多。
问题二:FROM 表单中没有加 enctype="multipart/form-data" 属性
上网查了下资料 :enctype 属性规定在发送到服务器之前应该如何对表单数据进行编码。解释如下表:
值 | 描述 |
---|---|
application/x-www-form-urlencoded | 在发送前编码所有字符(默认) |
multipart/form-data |
不对字符编码。 在使用包含文件上传控件的表单时,必须使用该值。 |
text/plain | 空格转换为 "+" 加号,但不对特殊字符编码。 |
问题三:input 表单控件没有添加 name 属性
没添加name属性,后台就不认识了?这个没花时间去查,暂时放一下。
下面直接贴代码了,首先是前端代码部分
<!DOCTYPE html>
<html><head><meta charset="UTF-8"><title></title><script type="text/javascript" src="jquery1.9.1.js" ></script></head><body><form enctype="multipart/form-data" action="http://localhost:42031/api/home/AddTableByDT" method="post"><input name="file" type="file" /><input type="submit" /></form></body>
</html>
前端代码没啥好说的,下面是后端代码
[HttpPost]public void AddTableByDapper(){try{System.Web.HttpFileCollection file = System.Web.HttpContext.Current.Request.Files;if (file.Count > 0){//文件名 string name = file[0].FileName;//保存文件 string path = HttpContext.Current.Server.MapPath("~/UpLoad/") + name;file[0].SaveAs(path);}}catch (Exception ex){throw ex;}}
对于后端代码,我有话要说,在调试过程中,我们可以看到文件中的一些属性
ContentLength :是该文件的大小(以字节计)
ContentType : 文件类型
FileName :文件名
如果你打算本地进行调试,那么先解决跨域问题,跨域问题网上的办法很多,我就不在累述了。
一般上传文件后,我们要对文件的类型和大小进行限制,并对该文件进行重命名,有了这三个属性后,都可以完成了,本来打算封装一个方法的,可是我实在太懒了,就先这样吧。敲代码眼睛这么酸涩,看看图休息一下吧,以后有机会再来上传demo
WebAPI+Form表单上传文件相关推荐
- form表单上传文件_SpringBoot中如何使用SpringMVC上传文件?
今天我们要说的这个话题很简单,不要问为啥,因为SpringBoot,哈哈.现在SpringBoot可以说人人都会用了,它的好处是显而易见的,大大的简化了配置,一起来看看吧. 我们分以下3种情况来谈这个 ...
- form 表单上传文件及传输数据的编码格式
form中的 action 控制请求往什么地方提交 method 请求方式 如果不写默认是get 请求 如果想传文件 必须要把默认的urlencoded的改成enctype="multi ...
- php无表单上传文件,php – 如何使用没有实体类的表单上传文件
我试图使用没有实体类的表单上传文件.到目前为止没有运气. // Controller public function uploadAction() { $request = $this->get ...
- 七牛云上传文件之表单上传文件
本人愚钝,七牛云上传文件的开发说明文档看了好久才搞懂,才能完成一个实例跑起来.现在做一下总结. 1.注册七牛,新建一个bucket,并获得ak,sk这个不用说了.不涉及到程序编码,重点讲一下编码的流程 ...
- php文件上传并保存路径到数据库,thinkphp表单上传文件并将文件路径保存到数据库中?...
上传单个文件,此文以上传图片为例,上传效果如图所示 创建数据库upload_img,用于保存上传路径 CREATE TABLE `seminar_upload_img` ( `id` int(11) ...
- android multipartentity 怎么上传参数,android-通过MultipartEntityBuilder通过HTTP表单上传文件,并显示进度b...
android-通过MultipartEntityBuilder通过HTTP表单上传文件,并显示进度b 短版本-.jar已弃用,其升级版本java.lang.NoClassDefFoundError在 ...
- PHP curl模拟表单上传文件 微信公众号素材管理接口crul文件上传核心源码
PHP curl模拟表单上传文件 微信公众号素材管理接口crul文件上传核心源码 /*** curl 上传文件* @param $url* @param $filePath* @param stri ...
- javaweb开发之处理表单上传文件和文件下载
2019独角兽企业重金招聘Python工程师标准>>> 一.基于表单的上传文件 1. enctype属性 当表单需要上传文件时,需指定表单 enctype 的值为 multipart ...
- php处理表单上传文件
使用表单上传文件的时候,表单的提交方式必须是post提交方式,上传文件的input控件type属性值应为file,最重要的是form标签需要加一个enctype="multipart/for ...
最新文章
- jsp的session介绍 (转)
- 讯飞智慧餐厅(安徽赛区)比赛通知
- java获取24小时制时间格式_java 日期格式时间24小时制
- 国内CVPR和图像处理领域的公司和研究机构
- java jms clust,Geoserver 的 JMS Cluster modules(集群数据同步)
- 知乎问答:一年内的前端看不懂前端框架源码怎么办?
- mmap函数用法及示例程序
- mysql5.7 gruop by报错this is incompatible with sql_mode=only_full_group_by
- 魅族16s安兔兔跑分揭晓:在优化中不断提高
- cmd命令不识别exp_GRAT2:一款功能强大的命令amp;控制(C2)工具
- ofdm原理_5G进行时|5G NR物理层详解:原理、模型和组件
- python常用函数及用法
- RG-IS2700G工业交换机ERPS技术解析
- Ember.js 初学指南
- 【java】web在线打开PDF文件
- mysql存储登录_MYSQL存储过程实现用户登录
- pandas task-08
- VG验证码识别框架2.2 免费识别验证码
- 是谁给我充的手机费?
- R7 5800H 3060 ubuntu20 配置全纪录(一)主要包括:N卡驱动、网卡驱动、virtualenv、CUDA and pytorch
热门文章
- 运筹学与最优化matlab编程,运筹学与最优化MATLAB编程 教学课件 ppt 作者 吴祈宗 郑志勇 第8章.ppt...
- NFT数字藏品系统全面解析!
- 【100%通过率】华为OD机试真题 JS 实现【硬件产品销售方案】【2023 Q1 | 100分】
- pandas DataFrame applymap()函数
- 关于大型语言模型的争论和局限
- 智能化消防装备管理系统云平台技术路线(2)
- 如何从零到一打造你的网络个人IP(时代赚钱利器)
- Python进阶之使用Scrapy实现自动登录Github的两种方法(POST,FormRequest,from_response)
- 按照频率将数组升序排序
- samba服务及vsftp服务及nfs服务简单配置