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 ...
随机推荐
- 第一天Beta冲刺
这个作业属于哪个课程 <课程的链接> 这个作业要求在哪里 <作业要求的链接> 团队名称 <做个一亿的小项目> 这个作业的目标 完成第一天Beta冲刺 作业正文 .. ...
- Poi导出Excle
场景 准备金系统需要从数据库读取大量数据存放到List集合中(可能还会做逻辑上的处理),并生成一个Excle文件,下载到客户本地. 问题一:客户体验 如果导出的文件比较大,比如几十万条数据,同步导出页 ...
- 函数参数-undefined-默认值-可选参数
1.函数参数为undefined时,触发参数默认值 2.实参数量 < 形参数量,多余的形参值为 underfined 3.设置可选参数 1)JS中: 检测 undefined :function ...
- python3爬虫--shell命令的使用和firefox firebug获取目标信息的xpath
scrapy version -v #该命令用于查看scrapy安装的相关组件和版本 一个工程下可创建多个爬虫 scrapy genspider rxmetal rxmetal.com scrapy ...
- django 模型层(orm)05
目录 配置测试脚本 django ORM基本操作 增删改查 Django 终端打印SQL语句 13条基本查询操作 双下滑线查询 表查询 建表 一对多字段数据的增删改查 多对多字段数据的增删改查 基于对 ...
- mysql随机取出n条数据
SELECT * FROM tableName ORDER BY RAND() LIMIT n 数据量小的话还可以, 数据量大起来了, 就影响性能了. $rubbish = (new ...
- UI案例
<Window x:Class="WpfDemo2.MainWindow" xmlns="http://schemas.microsoft.com/winfx/20 ...
- codeforces297B
Fish Weight CodeForces - 297B It is known that there are k fish species in the polar ocean, numbered ...
- Codeforces 474D Flowers(DP)
题目链接 非常简单的一道dp题,通过O(n)的预处理来使查询变为O(1). 主要的坑在于取模后的dp数组的前缀和再相减可能得到负数,导致无法得到某一区间和的取模. 解决方法:(a-b)%mo==(a% ...
- SimpleThreadPool给线程池增加拒绝策略和停止方法
给线程池增加拒绝策略和停止方法 package com.dwz.concurrency.chapter13; import java.util.ArrayList; import java.util. ...