ajax提交图片上传(ajax上传图片到服务器操作)
2022-01-12 16:27:29

使用场景是这样的: 在进行图片上传的时,开发人员使用的上传图片方式是Iframe + 传统的 http post 来处理的。而且未建立统一上传函数。

于是我心血来潮将代码改造了。心想来个ajax异步上传图片吧,这技术应该很老套了。于是直接打开强大的 cnblogs(博客园) 轻松的找到了这篇文章直接依葫芦画瓢,将该作者的劳动成果直接“拿来主义了”。很快就把代码全改造了。可是当我把程序发布到上的时问题来了。上传文件失效了!汗~ 都是偷懒造成的恶果。继续打开先前参考的那篇文章。原来作者解释了只能在本地使用而不能发布到服务器上。心想我难道还得用 iframe + http post 这个 郁闷的方式么??

于是不甘心的我打开了更加强大的google,开始全球搜索寻求解决方案,终于功夫不负有心人。找到了 “jquery.form.js” 。

异步上传图片的步骤如下:

1.引用 jquery js 框架(这东西的好处无需多论)后再引用 “jquery.form.js”。

2.建立一般处理程序 ashx。

核心代码如下:

html:

复制代码 代码如下:

<asp:Content ID=”Content3″ ContentPlaceHolderID=”Head” runat=”server”>

<script src=”<%=Url.Content(“~/Scripts/jquery-1.4.1.js”) %>” type=”text/javascript”></script>

<script src=”<%=Url.Content(“~/Scripts/jquery.form.js”) %>” type=”text/javascript”></script>

<script type=”text/javascript”>

$(function () {

//上传图片

$(“#btnUpload”).click(function () {

if ($(“#flUpload”).val() == “”) {

alert(“请选择一个图片文件,再点击上传。”);

return;

}

$(‘#UpLoadForm’).ajaxSubmit({

success: function (html, status) {

var result = html.replace(“<pre>”, “”);

result = result.replace(“</pre>”, “”);

$(“#image”).attr(‘src’, result);

alert(result);

}

});

});

});

ashx 如下:

复制代码 代码如下:

namespace TestMvc.Utility

{

/// <summary>

/// Summary description for PicUploadHander

/// </summary>

public class PicUploadHander : IHttpHandler

{

public void ProcessRequest(HttpContext context)

{

context.Response.ContentType = “text/plain”;

//验证上传的权限TODO

string _fileNamePath = “”;

try

{

_fileNamePath = context.Request.Files[0].FileName;

//开始上传

string _savedFileResult = UpLoadImage(_fileNamePath, context);

context.Response.Write(_savedFileResult);

}

catch

{

context.Response.Write(“上传提交出错”);

}

}

注:整个上传使用ajax 异步数据,同时jquery回调出上传成功后图片在服务器上的相对路径。总的来说此方式相对传统的上传图片方式要强一些。

使用场景是这样的: 在进行图片上传的时,开发人员使用的上传图片方式是Iframe + 传统的 http post 来处理的。而且未建立统一上传函数。

于是我心血来潮将代码改造了。心想来个ajax异步上传图片吧,这技术应该很老套了。于是直接打开强大的 cnblogs(博客园) 轻松的找到了这篇文章直接依葫芦画瓢,将该作者的劳动成果直接“拿来主义了”。很快就把代码全改造了。可是当我把程序发布到上的时问题来了。上传文件失效了!汗~ 都是偷懒造成的恶果。继续打开先前参考的那篇文章。原来作者解释了只能在本地使用而不能发布到服务器上。心想我难道还得用 iframe + http post 这个 郁闷的方式么??

于是不甘心的我打开了更加强大的google,开始全球搜索寻求解决方案,终于功夫不负有心人。找到了 “jquery.form.js” 。

异步上传图片的步骤如下:

1.引用 jquery js 框架(这东西的好处无需多论)后再引用 “jquery.form.js”。

2.建立一般处理程序 ashx。

核心代码如下:

html:

复制代码 代码如下:

<asp:Content ID=”Content3″ ContentPlaceHolderID=”Head” runat=”server”>

<script src=”<%=Url.Content(“~/Scripts/jquery-1.4.1.js”) %>” type=”text/javascript”></script>

<script src=”<%=Url.Content(“~/Scripts/jquery.form.js”) %>” type=”text/javascript”></script>

<script type=”text/javascript”>

$(function () {

//上传图片

$(“#btnUpload”).click(function () {

if ($(“#flUpload”).val() == “”) {

alert(“请选择一个图片文件,再点击上传。”);

return;

}

$(‘#UpLoadForm’).ajaxSubmit({

success: function (html, status) {

var result = html.replace(“<pre>”, “”);

result = result.replace(“</pre>”, “”);

$(“#image”).attr(‘src’, result);

alert(result);

}

});

});

});

ashx 如下:

复制代码 代码如下:

namespace TestMvc.Utility

{

/// <summary>

/// Summary description for PicUploadHander

/// </summary>

public class PicUploadHander : IHttpHandler

{

public void ProcessRequest(HttpContext context)

{

context.Response.ContentType = “text/plain”;

//验证上传的权限TODO

string _fileNamePath = “”;

try

{

_fileNamePath = context.Request.Files[0].FileName;

//开始上传

string _savedFileResult = UpLoadImage(_fileNamePath, context);

context.Response.Write(_savedFileResult);

}

catch

{

context.Response.Write(“上传提交出错”);

}

}

注:整个上传使用ajax 异步数据,同时jquery回调出上传成功后图片在服务器上的相对路径。总的来说此方式相对传统的上传图片方式要强一些。

未解决
您可能还需要
天天领红包,单单有红包
ajax框架教程(详解ajax框架作用)
ajax发送json数据实例(ajax传输json数据格式)
如何连接物理中控台进行群直播?
如何找回之前帐号的联系人?
为什么我的认证页面显示钉钉指数待解锁?
两个独立企业是否可查看信息
是否要安装钉钉才能打印?
明我盒子投屏不清晰怎么办
待办是否包含所有企业待办列表?
高级数字化管理师的头衔有效期是多久?
b6手环功能介绍(华为b6智能手环评测)
b360主板配什么cpu最佳(b360主板支持cpu列表)
b360主板能装win7吗(b360主板装win7的方法)
b2c电子商务网站都有哪些(讲解b2b电子商务模式)
b2c电商系统有哪些(电商系统物流系统操作)
b2c电商排名,b2C电子商务企业排名
b2c电商平台制作流程(跨境电商的主要平台操作方法)
b2c平台成功的关键是什么(最重要的6个关键性因素)
b2c企业有哪些公司(精选这10大B2C电商平台)
b2b营销是什么意思(附B2B与B2C营销优缺点)
b2b网站有哪些特点,十大国内b2b网站排名
b2b推广的社交网络,b2b平台免费发布信息网
b2b推广方式有哪些,免费b2b推广技巧
b2b平台推广策略有哪些,B2B网站推广4个技巧
b2b平台免费推广ppt(全程ppt解析B2B细则)
b2b市场营销是什么(附最实用的6种B2B营销策略)
b2b医药电商平台排名,中国十大医药电商平台介绍
b2b医药电商平台排名,中国医药电商10强是哪些
b2b2c网站建设模式及案例(简述s2b2c和b2b2c的区别)
b2b2c模式有哪些平台(盘点适合b2b2c商业模式)
正在加载...