引用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中的更多相关文章

  1. Django框架 之 Form表单和Ajax上传文件

    Django框架 之 Form表单和Ajax上传文件 浏览目录 Form表单上传文件 Ajax上传文件 伪造Ajax上传文件 Form表单上传文件 html 1 2 3 4 5 6 7 <h3& ...

  2. springMVC+jsp+ajax上传文件

    工作中遇到的小问题,做个笔记 实现springMVC + jsp + ajax 上传文件 HTML <body> <form id="myform" method ...

  3. 伪ajax上传文件

    伪ajax上传文件   最近在折腾伪ajax异步上传文件. 网上搜索了一下,发现大部分方法的input file控件都局限于form中,如果是在form外的呢? 必须动态生成一个临时form和临时if ...

  4. 闲话ajax,例ajax轮询,ajax上传文件[开发篇]

    引语:ajax这门技术早已见怪不怪了,我本人也只是就自己真实的经验去总结一些不足道的话.供不是特别了解的朋友参考参考! 本来早就想写一篇关于ajax的文章的,但是前段时间一直很忙,就搁置了,趁着元旦放 ...

  5. models渲染字典&form表单上传文件&ajax上传文件

    {# {% for u in teacher_d.keys %}#} {# {% for u in teacher_d.values %}#} {% for k,u in teacher_d.item ...

  6. django系列6--Ajax05 请求头ContentType, 使用Ajax上传文件

    一.请求头ContentType ContentType指的是请求体的编码类型,常见的类型共有三种: 1.application/x-www-form-urlencoded 这应该是最常见的 POST ...

  7. 用iFrame模拟Ajax上传文件

    前段时间在解决ajax上传文件时折腾了好一阵.直接用$.post上传文本信息肯定是没有问题的.但是$.post直接上传图片是不可行的. 后来看到网上的一些解决方案,有现成的ajax上传文件的封装的方法 ...

  8. ajax上传文件及nodeJS接收

    ajax文件上传需要用到FormData 官方介绍 FormData对象用以将数据编译成键值对,以便用XMLHttpRequest来发送数据.其主要用于发送表单数据,但亦可用于发送带键数据(keyed ...

  9. 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 ...

随机推荐

  1. LabVIEW中的波形图表(Chart)与波形图(Graph)

    在百度上随便找的一个简单的例子: 具体链接:https://jingyan.baidu.com/article/5552ef47deb996518ffbc983.html 波形图表最先出现数据,等待所 ...

  2. [易学易懂系列|rustlang语言|零基础|快速入门|(24)|实战2:命令行工具minigrep(1)]

    [易学易懂系列|rustlang语言|零基础|快速入门|(24)|实战2:命令行工具minigrep(1)] 项目实战 实战2:命令行工具minigrep 有了昨天的基础,我们今天来开始另一个稍微有点 ...

  3. Echarts 饼状图 字体重叠问题

    原理:设置最小扇形的大小,把他撑起来 在 series 里 使用 minAngle: 38, //最小的扇区角度(0 ~ 360),用于防止某个值过小导致扇区太小影响交互 角度自己调好就可以了 个人笔 ...

  4. JS 数组相关的操作函数

    // 1.数组拼接 concat() var a = [1, 2]; var b = [3, 4]; console.log(a.concat(b)); // [1, 2, 3, 4] // 2.数组 ...

  5. Springboot定时任务实现动态配置Cron参数(从外部数据库获取)

    https://blog.csdn.net/qq_35992900/article/details/80429245 我们主要讲解它的动态配置使用方法. 在刚开始使用的时候,我们更改一个任务的执行时间 ...

  6. 更改centos的网卡名

    Centos6更改网卡名的方法: 1.修改皮配置文件/etc/udev/rules.d/70-persistent-net.rules # This file was automatically ge ...

  7. Kafka、RabbitMQ、RocketMQ等 消息中间件 介绍和对比

    文章目录 1.前言 2.概念 2.1.MQ简介 2.2.MQ特点 2.2.1.先进先出 2.2.2.发布订阅 2.2.3.持久化 2.2.4.分布式 3.消息中间件性能究竟哪家强? 3.1.Kafka ...

  8. docker run always

    https://www.cnblogs.com/kaishirenshi/p/10396446.html

  9. java 日期增加

    import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public cl ...

  10. 【Android-NetWork】 判断是否连接网络,判断网络连接方式

    如何判断Android是否连接网络? Java代码: ConnectivityManager conn = (ConnectivityManager) getSystemService(Activit ...