图片上传和显示——上传图片——上传文件)==ZJ
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的更多相关文章
- django中图片的上传和显示
上传图片实际上是 把图片存在服务器的硬盘中,将图片存储的路径存在数据库中. 1 首先要配置文件上传的路径: 1.1 建立静态文件目录 在项目根目录下 新建一个 static文件夹,下面再建立一个med ...
- Slog71_选取、上传和显示本地图片GET !(微信小程序之云开发-全栈时代3)
ArthurSlog SLog-71 Year·1 Guangzhou·China Sep 12th 2018 ArthurSlog Page GitHub NPM Package Page 掘金主页 ...
- ruby on rails爬坑(三):图片上传及显示
一,问题及思路 最近在用rails + react + mysql基本框架写一个cms + client的项目,里面涉及到了图片的上传及显示,下面简单说说思路,至于这个项目的配置部署,应该会在寒假结束 ...
- 图片上传即时显示javascript代码
这是基于javascript的一种图片上传即时显示方法,测试结果IE6和火狐浏览器可以正常使用.google浏览器不兼容. 这种方法兼容性比较差,仅供参考,建议使用ajax方法来即时显示图片. 1.首 ...
- 图片上传并显示(兼容ie),图片大小判断
图片上传并显示(兼容ie),图片大小判断 HTML <div id="swf" style="margin: 0 auto;text-align: center;& ...
- MVC 4 图片的上传及显示
1 首先我们看一下如何上传 1.1 view 上传页面: 1: @using (Html.BeginForm("Create", "Achievement", ...
- django上传并显示图片
环境 python 3.5 django 1.10.6 步骤 创建名为 testupload的项目 django-admin startproject testupload 在项目testupload ...
- input图片上传并显示查看判断图片类型
有一个问题:上传一次在上传一次关闭按钮会出现两次,关闭之后还有一个(改好了可以告诉我我在修正过来) <div id="box"> <div class=" ...
- 用Canvas+Javascript FileAPI 实现一个跨平台的图片剪切、滤镜处理、上传下载工具
直接上代码,其中上传功能需要自己配置允许跨域的文件服务器地址~ 或者将html文件贴到您的站点下同源上传也OK. 支持: 不同尺寸图片获取. 原图缩小放大. 原图移动. 选择框大小改变. 下载选中的区 ...
随机推荐
- Android中设置TextView的颜色setTextColor
tv.setTextColor(Color.parseColor("#FFFFFF")); tv.setTextColor(Color.WHITE); tv.setTextColo ...
- WPF 程序Form自的控件自适应方式之一
<Window x:Class="MapEditor2.MainWindow" xmlns="http://schemas.microsoft.com/winfx/ ...
- 入门级的按键驱动——按键驱动笔记之poll机制-异步通知-同步互斥阻塞-定时器防抖
文章对应视频的第12课,第5.6.7.8节. 在这之前还有查询方式的驱动编写,中断方式的驱动编写,这篇文章中暂时没有这些类容.但这篇文章是以这些为基础写的,前面的内容有空补上. 按键驱动——按下按键, ...
- mysql 将列值转变为列的方法(转)
转自http://www.jb51.net/article/36497.htm -- 创建库CREATE TABLE `rate` ( `uname` VARCHAR (300), `object` ...
- Addthis使用
一.使用 https://www.addthis.com/.国外的SNS分享站点较多,适用于英文站点内容的分享.有教程. 我的测试代码如下: <html> <meta charset ...
- [转]C# 连接 Oracle 的几种方式
本文转自:http://www.cnblogs.com/storys/archive/2013/03/06/2945914.html 一:通过System.Data.OracleClient(需要安装 ...
- Stanford机器学习笔记-7. Machine Learning System Design
7 Machine Learning System Design Content 7 Machine Learning System Design 7.1 Prioritizing What to W ...
- HDU2955 Robberies[01背包]
Robberies Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total S ...
- Interceptor
拦截器是可以控制权限,当用户需要查看查看某些功能的时候,需要判断是不是登录了,如果没有登录的,就可拦截的过程.. 首先,我们都知道struts.xml 中有action 节点, 这个节点表示你想要访问 ...
- java 22 - 20 多线程之线程池
程序启动一个新线程成本是比较高的,因为它涉及到要与操作系统进行交互. 而使用线程池可以很好的提高性能,尤其是当程序中要创建大量生存期很短的线程时,更应该考虑使用线程池. 线程池里的每一个线程代码结束后 ...