引用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. NLP/CL 顶会收录

    全文转载自知乎@刘知远老师:初学者如何查阅自然语言处理学术资料(2016修订版). 1. 国际学术组织.学术会议与学术论文 自然语言处理(natural language processing,NLP ...

  2. 201271050130-滕江南-《面向对象程序设计(java)》第十七周学习总结

    201271050130-滕江南-<面向对象程序设计(java)>第十七周学习总结 博文正文开头格式:(2分) 项目 内容 这个作业属于哪个课程 https://www.cnblogs.c ...

  3. UVa101 The Blocks Problem(不定长数组vector)

    The Blocks Problem 书上的一道例题,代码思路比较清晰,可以看懂. 相关知识: 若a是一个vector,则: a.size():读取它的大小 a.resize():改变大小 a.pus ...

  4. 08-sp_who2和inputbuffer的使用,连接数

    一.sp_who2的使用 1.存储过程的位置 sp_who官方解释地址:https://docs.microsoft.com/zh-cn/sql/relational-databases/system ...

  5. js中彻底删除对象属性

    delete运算符可以删除对象的属性,但是仅仅是断开了属性和宿主对象的联系,而不会去操作被删除属性的属性值,所以就需要彻底删除的出现 function myDelete(obj,propertyNam ...

  6. AJAX 请求完成时执行函数。Ajax 事件。

    ajaxComplete(callback) 概述 AJAX 请求完成时执行函数.Ajax 事件. XMLHttpRequest 对象和设置作为参数传递给回调函数.大理石直角尺 参数 callback ...

  7. Laravel Artisan Tinker: The optimize Command

    Laravel Artisan Tinker: The optimize Command December 7, 2016 Laravel JOHN KOSTER The optimize comma ...

  8. String,权限修饰符,方法,集合

    String String str1 = "dashu"; String str2 = "dashu"; String string = new String( ...

  9. Python与开源GIS

    https://www.osgeo.cn/pygis/ 这里列出了与 GIS 相关的 Python 开源类库与工具. 基础类库(抽象库) • GDAL/OGR 是大部分开源GIS的基础,也包括如Arc ...

  10. 安装java1.8.0

    安装java 1.删除自带jdk rpm -e --nodeps `rpm -qa | grep java` 2.查看yum库中有哪些jdk版本. yum search java | grep jdk ...