http://www.cnblogs.com/yc-755909659/archive/2013/04/17/3026409.html aspx上传

http://www.cnblogs.com/mq0036/p/3715024.html  异步上传

-----------------------------------------ZJ版

MVC中利用ajaxfileupload.js插件实现异步上传:(这个既可以实现图片上传也可以实现文件上传)

JS引入:

<script src="~/Scripts/jquery-1.8.2.min.js"></script>
<script src="~/Content/UploadFile/ajaxfileupload.js"></script>

前台实现:

//Html部分
<div>
<h2>请选择要上传的文件</h2>
<input type="file" id="imgFile" name="imgFile" /><input type="button" value="上传" id="btnUp"/>
<br />
<div>
<img id="articleFacePhotoImg" />
</div>
</div>
//JS引入
<script src="~/Scripts/jquery-1.8.2.min.js"></script>
<script src="~/Content/UploadFile/ajaxfileupload.js"></script>
//上传文件JS调用代码
<script type="text/javascript">
//异步上传文件
uploadFacePhoto = function () {
//判断内容是否为空
if ($("#imgFile").val().length <= ) {
return;
}
//执行异步上传
$.ajaxFileUpload({
url: '@Url.Action("UploadImg","Home")',//上传到文件服务器请求地址
type: 'post',
data: { dir: 'image' },//自定义参数
secureuri: false,//是否需要安全协议,一般设置为false
fileElementId: 'imgFile',//文件上传遇的ID
dataType: 'json',//返回值类型,一般设置为json
success: function (data)//服务器成功响应处理函数
{
//由于ajaxFileUpload把原来的file元素替换成新的file元素,所以之前绑定的change事件就失效了,需要重新绑定一下
$("#imgFile").change(function () {
uploadFacePhoto();
})
if (data.error == ) {
$("#articleFacePhotoImg").attr("src", data.url);
} else {
alert(data.message);
}
} });
}
//绑定文章封面文件域改变事件
$("#imgFile").change(function () {
uploadFacePhoto();
});
//点击实现上传
//$("#btnUp").click(function () {
// uploadFacePhoto();
//});
</script>

//后台实现:

/// <summary>
/// 上传文件
/// </summary>
/// <returns></returns>
public ActionResult UploadImg(HttpPostedFileBase imgFile,string dir)
{
//定义允许上传的文件的扩展名
Hashtable extTable = new Hashtable();
extTable.Add("image", "gif,jpg,jpeg,png,bmp");
extTable.Add("flash", "swf,flv");
extTable.Add("media", "swf,flv,mp3,wav,wma,wmv,mid,avi,mpg,asf,rm,rmvb");
extTable.Add("file", "doc,docx,xls,xlsx,ppt,htm,html,txt,zip,rar,gz,bz2");
if(String.IsNullOrEmpty(dir))
{
dir = "image";
}
if(!extTable.ContainsKey(dir))//如果不包含
{
return Content(JsonConvert.SerializeObject(new { error = , message = "文件格式不正确" }));
}
if (imgFile == null)
{
return Content(JsonConvert.SerializeObject(new { error=,message="上传文件大小超过限制"}));
}
string fileName = imgFile.FileName;
string fileExt = Path.GetExtension(fileName).ToLower();
if (String.IsNullOrEmpty(fileExt) || Array.IndexOf(((String)extTable[dir]).Split(','), fileExt.Substring().ToLower()) == -)
{
return Content(JsonConvert.SerializeObject(new { error = , message = "上传文件扩展名是不允许的扩展名。\n只允许" + ((String)extTable[dir]) + "格式" }));
}
//创建文件夹
string dirPath = "/Files/" + dir + "/";
if (!Directory.Exists(Request.MapPath(dirPath)))
{
//不存在就创建
Directory.CreateDirectory(Request.MapPath(dirPath));
}
// string newFileName = DateTime.Now.ToString("yyyyMMddHHmmss_ffff") + fileExt;//注意这个写法文件名会有重复,要想不重复请使用Guid或其它方法。有坑需谨慎
imgFile.SaveAs(Request.MapPath(dirPath + newFileName));
//判断保存的文件是否存在
if (System.IO.File.Exists(Request.MapPath(dirPath + newFileName)))
{
return Content(JsonConvert.SerializeObject(new { error=,url=dirPath+newFileName}));
}
else
{
return Content(JsonConvert.SerializeObject(new { error=,message="上传文件失败!"}));
}
}

ajaxfileupload.js文件链接:http://pan.baidu.com/s/1i4Xezyd 密码:om9x

----------------------上面是简单的图片文件上传演示,下面简单演示下富文本编辑器的使用-------------

前台实现:

//Html部分
<div>
<!--编辑器开始-->
<textarea id="editor" name="content" style="width:100%;height:100%"></textarea>
<input type="button" id="btnSub" value="提交"/>
</div>
//JS部分
<script type="text/javascript">
$(function () {
//编辑器初始化
KindEditor.ready(function (K) {
window.editor = K.create('#editor', {
uploadJson: '@Url.Action("UploadImg","Home")'
});
});
$("#btnSub").click(function () {
var articleContent = editor.html();
alert(articleContent);
});
}) </script>
//引入文件
<script src="~/Scripts/jquery-1.8.2.min.js"></script>
<script src="~/Scripts/kindeditor/kindeditor-all-min.js"></script>
<script src="~/Scripts/kindeditor/plugins/code/code.js"></script>

后台实现和上面的上传文件后台一致,下面是引入文件链接:http://pan.baidu.com/s/1o8GV1pg 密码:4uum(百度云:KindEditor文件夹)

最后来张图片吧:

图片上传和显示——上传图片——上传文件)==ZJ的更多相关文章

  1. django中图片的上传和显示

    上传图片实际上是 把图片存在服务器的硬盘中,将图片存储的路径存在数据库中. 1 首先要配置文件上传的路径: 1.1 建立静态文件目录 在项目根目录下 新建一个 static文件夹,下面再建立一个med ...

  2. Slog71_选取、上传和显示本地图片GET !(微信小程序之云开发-全栈时代3)

    ArthurSlog SLog-71 Year·1 Guangzhou·China Sep 12th 2018 ArthurSlog Page GitHub NPM Package Page 掘金主页 ...

  3. ruby on rails爬坑(三):图片上传及显示

    一,问题及思路 最近在用rails + react + mysql基本框架写一个cms + client的项目,里面涉及到了图片的上传及显示,下面简单说说思路,至于这个项目的配置部署,应该会在寒假结束 ...

  4. 图片上传即时显示javascript代码

    这是基于javascript的一种图片上传即时显示方法,测试结果IE6和火狐浏览器可以正常使用.google浏览器不兼容. 这种方法兼容性比较差,仅供参考,建议使用ajax方法来即时显示图片. 1.首 ...

  5. 图片上传并显示(兼容ie),图片大小判断

    图片上传并显示(兼容ie),图片大小判断 HTML <div id="swf" style="margin: 0 auto;text-align: center;& ...

  6. MVC 4 图片的上传及显示

    1 首先我们看一下如何上传 1.1 view 上传页面: 1: @using (Html.BeginForm("Create", "Achievement", ...

  7. django上传并显示图片

    环境 python 3.5 django 1.10.6 步骤 创建名为 testupload的项目 django-admin startproject testupload 在项目testupload ...

  8. input图片上传并显示查看判断图片类型

    有一个问题:上传一次在上传一次关闭按钮会出现两次,关闭之后还有一个(改好了可以告诉我我在修正过来) <div id="box"> <div class=" ...

  9. 用Canvas+Javascript FileAPI 实现一个跨平台的图片剪切、滤镜处理、上传下载工具

    直接上代码,其中上传功能需要自己配置允许跨域的文件服务器地址~ 或者将html文件贴到您的站点下同源上传也OK. 支持: 不同尺寸图片获取. 原图缩小放大. 原图移动. 选择框大小改变. 下载选中的区 ...

随机推荐

  1. 使用 jsoup 解析HTML

    // 参考资料: // http://www.jb51.net/article/43485.htm @Test public void AnalysisHTMLByString() { String ...

  2. 简易的GCC图形界面GCCUI

    这个 GCCUI.EXE 是配合上一篇博文<用VC6开发嵌入式LINUX程序>说的:用VC6辅助开发LINUX程序的时候使用.把 gcc 编译器增加一个简易的图形界面,可以自动读取 vc6 ...

  3. Ubuntu为何永远绝对的免费?

    Ubuntu(发行版)是一个Linux大家族,而且个个都称得上是软件精品.所谓“绝对”就是没有任何条件.不受任何限制的意思.那么,Ubuntu怎么可能是永远绝对的免费?难道这不是蛊惑人心的宣传.不能兑 ...

  4. 【JAVA 小结】Java关于类与对象的代码

    分别建立2个类class works 和 Person import java.io.*; public class works { public static void main(String[] ...

  5. keepalived高可用反向代理的nginx

    实验系统: (1)CentOS 6.6_x86_64: (2)共有三台主机,本实验以ip地址来命名主机,即131主机.132主机.133主机. 实验前提:防火墙和selinux都关闭,主机之间时间同步 ...

  6. [转]MySQL: Starting MySQL….. ERROR! The server quit without updating PID file

    转自: http://icesquare.com/wordpress/mysql-starting-mysql-error-the-server-quit-without-updating-pid-f ...

  7. POJ3967Ideal Path[反向bfs 层次图]

    Ideal Path Time Limit: 10000MS   Memory Limit: 65536K Total Submissions: 1754   Accepted: 240 Descri ...

  8. combobox 属性、事件、方法

    一 .combobox 属性.事件.方法公共属性 名称 说明 AccessibilityObject 获取分配给该控件的 AccessibleObject. AccessibleDefaultActi ...

  9. 第七课——iOS数据持久化

    今天我们要学习plist.Preference.NSKeyedArchiver.Sqlite.CoreData(属性列表.偏好设置.归档.数据库.模型化对象). 首先plist就是将某些特定类,通过X ...

  10. cocos 锚点、包围盒

    cocos中,setPosition就是设置一个sprite的锚点在父级元素的坐标 默认锚点是sprite矩形的中点 可以用getBoundingBox返回一个sprite所占矩形范围.范围用Rect ...