700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 兼容IE8使用ajax上传文件

兼容IE8使用ajax上传文件

时间:2023-06-14 05:03:34

相关推荐

兼容IE8使用ajax上传文件

小编最近遇到一个问题,在项目中用到了发送邮件的功能,发送邮件就需要上传附件

使用ajax异步刷新上传文件,并且兼容IE8浏览器

新建 Web应用程序

页面效果

其中,用到了两个JS文件

链接:/s/1bo21xjp 密码:ensi

页面代码

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm.aspx.cs" Inherits="FileUpload.WebForm" %><!DOCTYPE html><html xmlns="/1999/xhtml"><head runat="server"><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title></title><script src="Source/jquery-1.7.1.js"></script><script src="Source/ajaxfileupload.js"></script></head><body><p><input type="file" id="file1" name="file" /></p><input type="button" value="上传" /><p><img id="img1" alt="上传成功" src="" /></p></body><script type="text/javascript">$(function () {$(":button").click(function () {ajaxFileUpload();})})function ajaxFileUpload() {$.ajaxFileUpload({url: '/WebForm.aspx', //用于文件上传的服务器端请求地址secureuri: false, //一般设置为falsefileElementId: 'file1', //文件上传空间的id属性 <input type="file" id="file" name="file" />dataType: 'json', //返回值类型 一般设置为jsonsuccess: function (data, status) //服务器成功响应处理函数{$("#img1").attr("src", data.imgurl);if (typeof (data.error) != 'undefined') {if (data.error != '') {alert(data.error);} else {alert(data.msg);}}},error: function (data, status, e)//服务器响应失败处理函数{alert(e);}})return false;}</script></html>

后台代码

using System;using System.Collections.Generic;using System.Drawing;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.HtmlControls;using System.Web.UI.WebControls;namespace FileUpload{public partial class WebForm : System.Web.UI.Page{protected void Page_Load(object sender, EventArgs e){HttpFileCollection files = Request.Files;//这里只能用<input type="file" />才能有效果,因为服务器控件是HttpInputFile类型string msg = string.Empty;string error = string.Empty;string imgurl;if (files.Count > 0){files[0].SaveAs(Server.MapPath("uploads/") + System.IO.Path.GetFileName(files[0].FileName));msg = " 成功! 文件大小为:" + files[0].ContentLength;imgurl = "/" + files[0].FileName;string res = "{ error:'" + error + "', msg:'" + msg + "',imgurl:'" + imgurl + "'}";Response.Write(res);Response.End();}}}}

在做IE兼容性测试的时候,F12选择浏览器版本,上述代码兼容IE8、IE7、IE5

为什么没有IE6兼容模式?

相比 IE6 而言,IE7 没有提供巨大的实质上的内核功能升级,更多地是在打补丁、修 bug,可以说,IE6 和 IE7 这两个版本的内核是严重同质化的, IE6 的用户量本身也在自然萎缩,因此,当 IE8 推出时,它的元标记和开发工具就放弃了 IE6 模式。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。