Ajax上传文件到C#Action中
引用js文件包:jquery.form.js可以下载 http://malsup.com/jquery/form/#download
<script src="script/jquery.form.js"></script>
var formEle = $("#DefaultPicture_Create_Form");//一定要form.find不然与查询页面重复
var defaultPictureName = formEle.find("#DefaultPictureName").val().trim();
var defaultPictureID = formEle.find("#DefaultPictureID").val();
$("#DefaultPicture_Create_Form").ajaxSubmit({
url: "@Url.Action("Save", "DefaultPictureMaintenance")",
type: "post",
dataType: 'json',
data: {
DefaultPictureName: defaultPictureName,
DefaultPictureID: defaultPictureID
},
beforeSend: function () {
showLoading();
},
success: function (data) {
debugger
if (data.Status == 200) {
showOkClose(data.Message);
closePopup();
DefaultPictureSearch();
} else {
showError(data.Message);
}
},
error: function (aa) {
debugger;
alert(aa);
},
complete: function () {
hideLoading();
}
});
/// <summary>
/// 将 Stream 转成 byte[]
/// </summary>
/// <param name="stream"></param>
/// <returns></returns> private byte[] StreamToBytes(Stream stream)
{
byte[] bytes = new byte[stream.Length];
stream.Read(bytes, , bytes.Length);
// 设置当前流的位置为流的开始
stream.Seek(, SeekOrigin.Begin);
return bytes;
}
/// <summary>
/// 检查文件是否合格,不合格返回错误信息,合格返回空字符
/// </summary>
/// <param name="file"></param>
/// <returns></returns>
private string CheckUploadFile(HttpPostedFileBase file)
{
//判断文件必须小于2M 格式必须PNG JPG
if (file.ContentType != "image/png" && file.ContentType != "image/jpeg")
{
return "Upload failed! Picture type can only be JPG or PNG.";
}
if (file.ContentLength / > * )
{
return"Upload failed! Image size can not be greater than 2M.";
}
return "";
}
public ActionResult Save(int DefaultPictureID, string DefaultPictureName, HttpPostedFileBase file)
{
bool isSaveSuccess = true;
var DefaultPicture = new DefaultPictureItem();
if (DefaultPictureID > )//编辑
{ //编辑时可以运行File为Null,表示用户没有修改图片
var defaultPicModel = _defaultPictureService.GetByID(DefaultPictureID);//获取数据库中的
defaultPicModel.DefaultPictureName = DefaultPictureName;
defaultPicModel.UpdateBy = "testUser";
defaultPicModel.UpdateDate = DateTime.Now;
if (file!=null)
{
//判断文件必须小于2M 格式必须PNG JPG
var errorMsg = CheckUploadFile(file);
if (!string.IsNullOrEmpty(errorMsg))
{
return Error(errorMsg);
}
var fileStream = file.InputStream;
defaultPicModel.DefaultPictureContent = StreamToBytes(fileStream);
DefaultPicture.DefaultPictureHaskKey = Guid.NewGuid().ToString();
}
isSaveSuccess = _defaultPictureService.Update(defaultPicModel);
}
else
{//新增
if (file == null)//新增的时候文件内容是必须得
{
return Error("Upload failed! Image content can not be empty");
}
DefaultPicture.DefaultPictureName = DefaultPictureName;
DefaultPicture.DefaultPictureHaskKey = Guid.NewGuid().ToString();
DefaultPicture.CreateBy = "testUser";
DefaultPicture.CreateDate = DateTime.Now;
DefaultPicture.UpdateBy = "testUser";
DefaultPicture.UpdateDate = DateTime.Now;
//获取文件的内容
//判断文件必须小于2M 格式必须PNG JPG
var errorMsg = CheckUploadFile(file);
if (!string.IsNullOrEmpty(errorMsg))
{
return Error(errorMsg);
}
var fileStream = file.InputStream;
DefaultPicture.DefaultPictureContent = StreamToBytes(fileStream);
isSaveSuccess = _defaultPictureService.Update(DefaultPicture);
}
if (isSaveSuccess)
{
return Success("Save Success");
}
else
{
return Error("Save Failed");
}
}
Ajax上传文件到C#Action中的更多相关文章
- Django框架 之 Form表单和Ajax上传文件
Django框架 之 Form表单和Ajax上传文件 浏览目录 Form表单上传文件 Ajax上传文件 伪造Ajax上传文件 Form表单上传文件 html 1 2 3 4 5 6 7 <h3& ...
- springMVC+jsp+ajax上传文件
工作中遇到的小问题,做个笔记 实现springMVC + jsp + ajax 上传文件 HTML <body> <form id="myform" method ...
- 伪ajax上传文件
伪ajax上传文件 最近在折腾伪ajax异步上传文件. 网上搜索了一下,发现大部分方法的input file控件都局限于form中,如果是在form外的呢? 必须动态生成一个临时form和临时if ...
- 闲话ajax,例ajax轮询,ajax上传文件[开发篇]
引语:ajax这门技术早已见怪不怪了,我本人也只是就自己真实的经验去总结一些不足道的话.供不是特别了解的朋友参考参考! 本来早就想写一篇关于ajax的文章的,但是前段时间一直很忙,就搁置了,趁着元旦放 ...
- models渲染字典&form表单上传文件&ajax上传文件
{# {% for u in teacher_d.keys %}#} {# {% for u in teacher_d.values %}#} {% for k,u in teacher_d.item ...
- django系列6--Ajax05 请求头ContentType, 使用Ajax上传文件
一.请求头ContentType ContentType指的是请求体的编码类型,常见的类型共有三种: 1.application/x-www-form-urlencoded 这应该是最常见的 POST ...
- 用iFrame模拟Ajax上传文件
前段时间在解决ajax上传文件时折腾了好一阵.直接用$.post上传文本信息肯定是没有问题的.但是$.post直接上传图片是不可行的. 后来看到网上的一些解决方案,有现成的ajax上传文件的封装的方法 ...
- ajax上传文件及nodeJS接收
ajax文件上传需要用到FormData 官方介绍 FormData对象用以将数据编译成键值对,以便用XMLHttpRequest来发送数据.其主要用于发送表单数据,但亦可用于发送带键数据(keyed ...
- django上课笔记7-jQuery Ajax 和 原生Ajax-伪造的Ajax-三种Ajax上传文件方法-JSONP和CORS跨域资源共享
一.jQuery Ajax 和 原生Ajax from django.conf.urls import url from django.contrib import admin from app01 ...
随机推荐
- TXNLP 09-17
上节课讲了一些算法的复杂度,都比较简单,我就没有单独截图.1 n n^2 nlogn logn...等等 其实一些排序问题也比较简单.还是给大家列举一下. 归并排序: 主定理定理..吐血 算法复杂度相 ...
- SpringMVC之RequestContextHolder分析(转)
链接:https://blog.csdn.net/zzy7075/article/details/53559902
- 常见的SQL编写和优化
目录 常见SQL编写和优化 常见的SQL优化方式 常见SQL编写和优化 常见的SQL优化方式 对查询进行优化,应尽量避免全表扫描,首先应考虑在where及order by 涉及的列上建立索引. 应尽量 ...
- PyQt打包可执行文件
1.安装pyinstaller pip install pyinstaller 2.pyinstaller打包 pyinstaller -F -w xxxx.py -F:生成可执行文件 -w:不显示命 ...
- 题解 最长上升子序列 LIS
最长上升子序列 LIS Description 给出一个 1 ∼ n (n ≤ 10^5) 的排列 P 求其最长上升子序列长度 Input 第一行一个正整数n,表示序列中整数个数: 第二行是空格隔开的 ...
- table 表格
标签 <table> 标签定义HTML中的表格 <tr> 标签定义表格中的行. <th> 标签定义表格中表头的每一项.元素内部的文本通常会呈现为居中的粗体文本. ...
- Mysql历史版本下载地址
Mysql历史版本下载地址:http://downloads.mysql.com/archives/community/
- VirtualBox 安装CentOS虚拟机网卡配置
VirtualBox虚拟机网络设置(NAT+HOST-ONLY) 目标: 虚拟机可以像宿主机一样访问互联网和其他主机 宿主机和虚拟机可以相互访问 使用NAT实现目标一 使用Host-Only实现目标二 ...
- CCPC-Wannafly & Comet OJ 夏季欢乐赛(2019)D
题面 一开始想到一个 O(N^2) 做法,先把x排序,然后顺次枚举x最大的点,看向前最多可以保留多少点 (也就是先不管正方形的上下长度限制,先考虑左右的限制).然后再对这些点做一遍类似的..(等等这么 ...
- Windows上redis下载与安装
一.redis是什么 非关系型内存数据库,以key-value的形式将数据储存在内存中.Mysql是关系型数据库,数据是保存在硬盘中 二.redis下载安装 1.要安装Redis,首先要获取安装包. ...