本案例主要说讲使用ajaxFileUpload实现图片的异步上传。

1、html代码部分

这里的代码,主要设置一下name,后台获取时候要用到,还有设置一个onchange的事件对应的方法:ajaxFileUpload()

 插入图片:<input style="display:initial;" type="file" alt="插入图片" id="uploadImage" onchange="ajaxFileUpload()" name="uploadImage" /> </span>

html代码

2、js部分代码

使用这部分代码,需要引入jq和ajaxfileupload.js这两个文件。在这里主要设置上传路径和对返回的结果做相应的处理

 //文件上传
function ajaxFileUpload() { //图片格式验证
var x = document.getElementById("uploadImage");
if (!x || !x.value) return;
var patn = /\.jpg$|\.jpeg$|\.png$|\.gif$/i;
if (!patn.test(x.value)) {
alert("您选择的似乎不是图像文件。");
x.value = "";
return;
} var elementIds = ["uploadImage"]; //flag为id、name属性名
$.ajaxFileUpload({
url: '/Forum/SaveImage',//上传的url,根据自己设置
type: 'post',
secureuri: false, //一般设置为false
fileElementId: 'uploadImage', // 上传文件的id、name属性名
dataType: 'text', //返回值类型,一般设置为json、application/json
elementIds: elementIds, //传递参数到服务器
success: function (data, status) {
//alert(data);
if (data == "Error1") {
alert("文件太大,请上传不大于5M的文件!");
return;
} else if (data == "Error2") {
alert("上传失败,请重试!");
return;
} else {
//这里为上传并做一下请求显示处理,返回的data是对应上传的文件名
$("#ReplyContent").append("<img width='300' height='300' src='" + "../UploadFile/ForumImages/" + data + "'/>"); }
},
error: function (data, status, e) {
alert(e);
}
});
//return false;
}

JS

3、后台处理代码(此处为C#)

后台的处理主要有对上传文件的格式验证,文件大小验证,给文件重命名和设置一下保存路径,最后返回图片的新名字。这样js就可以根据路径去请求该图片并展示出来。

 try
{
//判断上传文件的数目
if (Request.Files.Count > )
{
//获取文件
HttpPostedFileBase proImage = Request.Files["upload"];//获取上传的图片 //判断上传文件大小,小于5M
if (proImage.ContentLength > * * )
{
return Content("Error1");
} //截取图片类型:image/png
string[] filetypes = proImage.ContentType.Split('/'); //判断文件的类型
if (filetypes[] == "jpg" || filetypes[] == "gif" || filetypes[] == "png" || filetypes[] == "bmg" || filetypes[] == "jpeg")
{
//给上传文件重命名
string filename = DateTime.Now.ToString("yyyyMMddHHmmssfff") + Guid.NewGuid().ToString(); //文件保存的路径
string filesavepath = Server.MapPath("~/Uploadfile/ForumImages/" + filename + "." + filetypes[]); //保存图片
proImage.SaveAs(filesavepath); //返回文件名,可以在前台展示出来
return Content(filename + "." + filetypes[]);
}
else
{
//图片格式不对
return Content("Error2");
} }
else
{ //上传图片数目小于或者等于0
return Content("Error1");
}
}
catch {
return Content("Error2");
}

c#代码

JQuery的ajaxFileUpload图片上传初试的更多相关文章

  1. 【转】JQuery插件ajaxFileUpload 异步上传文件(PHP版)

    前几天想在手机端做个异步上传图片的功能,平时用的比较多的JQuery图片上传插件是Uploadify这个插件,效果很不错,但是由于手机不支持flash,所以不得不再找一个文件上传插件来用了.后来发现a ...

  2. JQuery插件ajaxFileUpload 异步上传文件(PHP版)

    太久没写博客了,真的是太忙了.善于总结,进步才会更快啊.不多说,直接进入主题. 前几天想在手机端做个异步上传图片的功能,平时用的比较多的JQuery图片上传插件是Uploadify这个插件,效果很不错 ...

  3. jQuery插件AjaxFileUpload文件上传实现Javascript多文件上传功能

     Ajax file upload plugin是一个功能强大的文件上传jQuery插件,可自定义链接.或其它元素庖代传统的file表单上传结果,可实现Ajax动态提示文件上传 过程,同时支撑多文 ...

  4. 关于ajaxFileUpload图片上传,success和error都触发的情况

    最近做到项目使用JQuery的插件ajaxFileUpload~~~ 遇到了非常领人匪夷所思的事情,当图片上传成功之后呢(success),它的error事件也被触发了,情况就是: 后端数据正确返回 ...

  5. JQuery插件ajaxFileUpload 异步上传文件

    一.先对ajaxFileUpload插件的语法参数进行讲解 原理:ajaxfileupload是通过监听iframe的onload方法来实现, 当从服务端处理完成后,就触发iframe的onload事 ...

  6. Jquery插件-Html5图片上传并裁剪

    /** * 图片裁剪 * @author yanglizhe * 2015/11/16 */ (function($){ /** * Drag */ var Drag={obj:null,init:f ...

  7. JQuery插件:图片上传本地预览插件,改进案例一则。

    /* *名称:图片上传本地预览插件 v1.1 *作者:周祥 *时间:2013年11月26日 *介绍:基于JQUERY扩展,图片上传预览插件 目前兼容浏览器(IE 谷歌 火狐) 不支持safari *插 ...

  8. jquery之ajaxfileupload异步上传插件

    点我下载工程代码由于项目需求,在处理文件上传时需要使用到文件的异步上传.这里使用Jquery Ajax File Uploader这个组件下载地址:http://www.phpletter.com/d ...

  9. jquery插件--ajaxfileupload.js上传文件原理分析

    英文注解应该是原作者写的吧~说实话,有些if判断里的东西我也没太弄明白,但是大致思路还是OK的. jQuery.extend({ createUploadIframe: function (id, u ...

随机推荐

  1. Centos7搭建需要mysql的网站

    1.在centos7上安装好http.php.php-mysql服务 php-mysql是用来链接的工具 2.在centos5上yum安装mysql 注意在搭建本地yum源时把校验关闭,不然安装不上 ...

  2. 阿里云CentOS6.5搭建服务器JDK+tomcat+MySQL

    阿里云ECS,计划安装jdk:MySQL:tomcat: 一.yum Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的S ...

  3. 【前端】event.target 和 event.currentTarget 的区别

    event.target 和 event.currentTarget 的区别 举例说明: <!DOCTYPE html> <html> <head> <tit ...

  4. CSS篇

    一.盒子模型: 标准模式和混杂模式(IE).在标准模式下浏览器按照规范呈现页面:在混杂模式下,页面以一种比较宽松的向后兼容的方式显示.混杂模式通常模拟老式浏览器的行为以防止老站点无法工作. CSS盒子 ...

  5. 您可能不曾注意的C++内置类型选择和使用的注意事项

    写在前面: 太忙了,好久没有写博客.这篇文章是在下读C++ Primer中文第五版(与以往版本相比,第五版的一大特色就是“为新的C++11标准重新撰写”——引自封皮)时的笔记,没有什么技术含量,只是作 ...

  6. _beginthreadex注意事项

    _beginthreadex 当失败时返回0 而不是 -1L _beginthreadex调用之后返回的HANDLE,必须手动CloseHandle,才能正确释放句柄.

  7. Linux截屏工具scrot用法详细介绍

    Scrot是Linux命令行中使用的截图工具,能够进行全屏.选取等操作,下面小编将针对Scrot截图工具的用法给大家做个详细介绍,通过操作实例来学习Scrot的使用.   在Linux中安装Scrot ...

  8. Xcode7 *** does not contain bitcode. You must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE)

    *** does not contain bitcode. You must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE ...

  9. batch

    %0  当前 batch 文件名  %n  第 n 个命令行参数(1 <= n <= 9)  %*  所有的命令行参数  @echo off echo % echo % if not &q ...

  10. Eclipse 快捷键 (应用中自己总结)

    调试快捷键: 1: resume(F8) 调试中用来直接跳到下一个断点 2:  用来结束JVM 3:step into (F5)跳入函数 4: step over (F6)单步执行 5:step re ...