.net c# 提交包含文件file 的form表单 获得文件的Stream流
1.前台html代码
要写一个有id的form,可是不能有runat="server"属性。由于一个页面中,有这个属性的form表单仅仅能有一个。
再要有一个有name的iframe,要设置它的样式为不显示。即display为none。
使用iframe的优点是。提交该表单,
不会刷新页面,仅仅会刷新这个不可见的iframe。
把form表单的target设置为iframe的name值,form表单的 action设置为表单要提交到的处理程序。
这个处理程序中。会接收到form表单中全部有name属性的控件的值,包括文件:
<input type="file" name="uploadfile" id="uploadfile" />
WebForm的文件要想上传到server端,不能用.net本身的FileUpLoad控件,貌似是由于会遇到权限问题。无法解析。
所以,用本文所用的以表单的形式post过去,再在接收端用C#代码:
var file = context.Request.Files[0]; var stream = file.InputStream;来获得文件和文件流。
<form id="fileInfo" enctype="multipart/form-data" target="screct_frame" method="POST" action="../../Handlers/needsPlanCreateHandler.ashx?sign=readExcel">
<input type="file" name="uploadfile" id="uploadfile" />
<button class="btn btn-default" type="submit" >确定</button>
</form>
<iframe name="screct_frame" style="display: none;"></iframe>
2.一般处理程序代码,即上面form所提交到的action端的处理代码
private void ReadExcel(HttpContext context)
{
context.Response.ContentType = "text/html";
try
{
var file = context.Request.Files[0];
if (file.FileName == "")
{
context.Response.Write("<script>parent.callback('请先导入文件');</script>");
}
var stream = file.InputStream;
//这里能够对文件流做些什么 }
catch (Exception ex)
{
context.Response.Write("<script>parent.callback(" + ex.ToString() + ");</script>");
}
}
说明:上面的parent.callback()这种方法,callback()是iframe所在的页面定义的js方法,前面使用parent时由于。
当前提交的是在iframe中,使用parent能够获得页面对象,iframe能够通过parent或top来找到父级页面,
能够运行父级页面的js脚本。
.net c# 提交包含文件file 的form表单 获得文件的Stream流的更多相关文章
- ASP .Net Core MVC如何利用vue提交包含List属性的form表单
前言 遇到这个问题,是由于自己在mvc项目中使用vue而并不想jquery(人嘛,就是要折腾),并且表单中的一个属性是一个集合. 研究了下Razor如何实现的,用jquery感觉就挺麻烦了,vue用在 ...
- Django框架之第二篇--app注册、静态文件配置、form表单提交、pycharm连接数据库、django使用mysql数据库、表字段的增删改查、表数据的增删改查
本节知识点大致为:静态文件配置.form表单提交数据后端如何获取.request方法.pycharm连接数据库,django使用mysql数据库.表字段的增删改查.表数据的增删改查 一.创建app,创 ...
- Django的form表单之文件上传
在生成input标签的时候可以指定input标签的类型为file类型 <!DOCTYPE html> <html lang="en"> <head&g ...
- Ajax提交Form表单及文件上传
刚刚申请下来的博客,写得第一篇.有点小激动,本人以前是一名工业3D设计师突然有些变故做上了JavaWeb开发: 前几天,发现了一些小问题.我在写后台管理页面时,需要上传一张图片.于是我就用很普通的Fo ...
- 文件上传---form表单,ajax,jquery,以及iframe无刷新上传 (processData,contentType讲解)
服务端程序: import tornado.web import os IMG_LIST=[] class IndexHandler(tornado.web.RequestHandler): def ...
- PHP 后台程序配置config文件,及form表单上传文件
一,配置config文件 1获取config.php文件数组, 2获取form 表单提交的值 3保存更新config.php文件,代码如下: $color=$_POST['color']; $back ...
- 使用隐藏form表单下载文件,解决url方式下载,由于环境问题而限制url长度,满足不了所有的需求!
一 对于某些环境导出是直接用wiondow.href=url直接导出下载,有些业务需求,如员工档案等字段比较多的时候,全选导出就会引发异常,由于Nginx转发长度限制的问题, 如果运维不愿意改变环境, ...
- ajax上传文件 基于jquery form表单上传文件
<script src="/static/js/jquery.js"></script><script> $("#reg-btn&qu ...
- php+form表单的文件上传
<!doctype html> <html> <head> <meta charset="UTF-8"> <title> ...
随机推荐
- github版本库使用详细图文教程(命令行及图形界面版)
投稿:mdxy-dxy 字体:[增加 减小] 类型:转载 时间:2015-08-06我要评论 今天我们就来学习github的使用,我们将用它来管理我们的代码,你会发现它的好处的,当然是要在本系列教程全 ...
- BZOJ 2716: [Violet 3]天使玩偶( CDQ分治 + 树状数组 )
先cdq分治, 然后要处理点对答案的贡献, 可以以询问点为中心分成4个区域, 然后去掉绝对值(4种情况讨论), 用BIT维护就行了. --------------------------------- ...
- MySql连接异常解决
这两天遇到一个mysql连接的问题,找人弄了好几天也没弄好,先看一下报错信息: ============================================================ ...
- ThinPHP第二十七天(kindEditor使用,$.each)
1.KindEditor简单使用实例 <js file="__PUBLIC__/kindeditor/kindeditor.js" /> <js file=&qu ...
- 新浪sae 项目之 git 配置
新浪sae 项目现在支持git 配置了,但是有好多人配置不成功.下面对这个问题进行一个总结. 1. 在新浪云上面新建项目(该步骤省略) 2. 一般新建完毕后,会让你选择代码的管理工具,如下 注意这里, ...
- python 时间字符串与日期转化
python 时间字符串与日期转化 datetime.datetime.strptime(string, format) 根据指定的格式解析字符串为一个datetime类型.相当于datetime.d ...
- 用python 10min手写一个简易的实时内存监控系统
简易的内存监控系统 本文需要有一定的python和前端基础,如果没基础的,请关注我后续的基础教程系列博客 文章github源地址,还可以看到具体的代码,喜欢请在原链接右上角加个star 腾讯视频链接 ...
- opencv-python 学习笔记1:简单的图片处理
一.主要函数 1. cv2.imread():读入图片,共两个参数,第一个参数为要读入的图片文件名,第二个参数为如何读取图片,包括cv2.IMREAD_COLOR:读入一副彩色图片:cv2.IMREA ...
- oralce dg conf
http://wenku.baidu.com/view/ea9fa16cdd36a32d73758168.html http://ylw6006.blog.51cto.com/470441/84181 ...
- Paths on a Grid(规律)
Paths on a Grid Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 23270 Accepted: 5735 ...