IE8 post 文件定位 iframe,到达服务器时为空

2024-06-18

我有一个表格,只有一个input:file在其中,表单的目标是一个命名的iframe。当用户选择一个文件时,它会自动将表单发送到服务器。这适用于 IE10/firefox/chrome,但在 IE8 中,当 IE8 发布表单时,我的控制器方法上的 File 参数为 null。有没有其他人遇到过这个问题并知道任何解决方案,为什么 IE8 实际上没有发布文件数据?

客户端:

function createFileUploadForm()
{
    var frameName = 'fileUploadFormFrame';
    var fileValue;
    var fileUploadCallback = function()
    {
        //do stuff when the server responds after receiving the file
    };
    var fileInputChangedCallback = function(event)
    {
        if(fileInput.value != fileValue)
        {
            fileValue = fileInput.value;
            form.submit();
        }
    };

    var iFrame = document.createElement('iframe');
    iFrame.name = frameName
    document.body.appendChild(iFrame);

    var form = document.createElement('form');
    form.action = 'a/valid/url';
    form.method = 'post';
    form.enctype = 'multipart/form-data';
    form.target = frameName;

    var fileInput = document.createElement('input');
    fileInput.type = 'file';
    fileInput.name = 'File';
    fileInput.accept = '.spc';
    fileValue = fileInput.value;

    //all browsers except IE8
    //add event listener to fileInput onChange event -> fileInputChangedCallback

    //IE8 fix
    //add event listener to fileInput onFocus event -> fileInputChangedCallback

    form.appendChild(fileInput);

    document.body.appendChild(form);
}

服务器端:

[HttpPost]
public ActionResult UploadFile(HttpPostedFileBase File)
{
    //do stuff with File, but in IE8 File parameter is null
}

问题是 IE8 需要额外的encoding要设置的表单属性:

var form = document.createElement('form');
form.action = 'a/valid/url';
form.method = 'post';
form.enctype = 'multipart/form-data';
form.encoding = 'multipart/form-data';  //this additional line fixes the IE8 problem I was having
form.target = frameName;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

IE8 post 文件定位 iframe,到达服务器时为空 的相关文章

  • 如何使用 C# 上传文件并将其保存到 Stream 以便进一步预览?

    有没有办法上传文件 将其保存到流中 该流我会将其临时保存在会话中 最后 我将尝试预览此会话中的此上传文件 例如 pdf 文件 Thanks EDITED 这就是我想做的 HttpPostedFileBase hpf Request File
  • IE8、IE7透明背景问题

    对我的菜单使用图标 png 透明背景 对于 IE9 Chrome Firefox safari opera 没有任何问题 但是如果我使用 IE7 或 IE8 打开页面 图像周围会出现断线黑色边框 CSS 代码 menu item1 back
  • 通过嵌入式 Google Sheet 上的按钮激活脚本

    我正在尝试嵌入一个 Google 电子表格 其中包含一个我希望用户能够激活的脚本 我不希望他们能够编辑页面上的任何内容 我想我可以这样做 共享工作表并设置编辑权限 限制在我想要共享的一张纸上进行编辑 图像位于单元格上方 所以我认为这会阻止人
  • 以编程方式访问使用数据 URI 作为源的 iframe

    我正在使用 数据 URI 以编程方式创建一个 iframe 该框架加载良好 但似乎以编程方式使用 iframe 会遇到跨域安全检查 var iframeDoc document getElementById myFrame contentW
  • HTTP 和 HTTPS iframe

    我正在创建一个小部件 我想允许其他人使用它 这iframe通过 HTTP 加载 但我想允许用户通过 HTTPS 登录 即通过 SSL 发送登录请求 同源策略中允许这样做吗 即 场景是用户可以将我的 JavaScript 集成到他们的网站 小
  • 通过 iframe 的信用卡付款表格有缺点吗? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我在许多小型企业电子商务网站中看到的一个常见功能是 当我单击 结帐 按钮时 我会离开该网站并重定向到第三方支付网关 如 paypal authoriz
  • 内容脚本和 web_accessible_resources iframe 之间的通信

    我有一个将 iframe 注入网页的内容脚本 内容 js var iframe document createElement iframe iframe id frame iframe style cssText position fixe
  • IE8 替代 window.scrollY?

    我正在尝试确定我向下滚动了多少像素window scrollY 但 IE8 不支持此功能 什么是安全的跨浏览器替代方案 跨浏览器兼容版本window scrollY is document documentElement scrollTop
  • 如何修复网站 iframe 错误?

    当我访问此网址时 警告 推荐使用一些广告拦截器 网页链接加载良好 没有错误 但是 当我尝试通过加载同一页面时iframe在我的html代码中 出现错误 我的html代码
  • 为什么开发者讨厌 iframe? [复制]

    这个问题在这里已经有答案了 可能的重复 iframe 被认为是 不好的做法 吗 https stackoverflow com questions 362730 are iframes considered bad practice 在与
  • 如何在 IE8 中为两个字母的域设置 cookie?

    因为区分短域名和 TLD 并非易事 微软维护一个列表 http blogs msdn com b ieinternals archive 2009 09 19 private domain names and public suffixes
  • IE8 post 文件定位 iframe,到达服务器时为空

    我有一个表格 只有一个input file在其中 表单的目标是一个命名的iframe 当用户选择一个文件时 它会自动将表单发送到服务器 这适用于 IE10 firefox chrome 但在 IE8 中 当 IE8 发布表单时 我的控制器方
  • 使用 PhoneGap + iPhone 上传文件

    据我所知 PhoneGap 应用程序大部分 如果不是全部 都是 HTML5 CSS JavaScript iPhone 本身不提供上传文件的控件 PhoneGap是否提供任何允许用户上传文件的机制 图片 视频 以 iPhone 为例 我知道
  • 通过 Selenium 和 python 切换到 iframe

    我如何在硒中切换到这个 iframe 只知道 您可以使用 XPath 来定位 iframe driver find element by xpath iframe name Dialogue Window Then switch to th
  • 在asp net mvc中简单的图像上传

    我正在构建一个简单的学校门户 我一直坚持将图像上传到我的应用程序中 即用户应该将学校图像上传到我的服务器 我的图像目录为 Content Images 所有上传图像都应该上传到这个目录 我有以下代码 input type file id S
  • jQuery 更改输入类型=“文件”的方法

    我试图 100 接受 jQuery 因为它简单而优雅的 API 但我遇到了 API 和直接 HTML 之间的不一致 我无法弄清楚 我有一个 AJAX 文件上传器脚本 可以正常运行 我想在每次文件输入值更改时运行该脚本 这是我的工作代码
  • JavaScript 重定向 - 新窗口

    我正在尝试使用 Javascript 从空白 iframe 内部创建一个重定向 该重定向将定向到新窗口或选项卡内的 URL 更具体地说 我试图使 Facebook 选项卡指向我公司的网页 而不是将页面加载到选项卡的 iframe 内 该 i
  • 谷歌分析和 iFrame

    所以我有一个简单的页面 当用户单击链接时 iframe 将打开 我正在尝试使用 pageTracker trackPageview outgoing example com 在 iframe 内部 但似乎它不起作用 我已阅读此页 code
  • 使用 angular2 将图像上传到 asp.net core

    所以我有 Angular2 的 ASP NET Core 应用程序 现在我想上传图像 如果我将其上传为 byte 我就成功了 但后来我无法检查文件是否真的是后端的图像 所以我尝试寻找其他解决方案 我发现了这个关于文件上传的博客 https
  • 是否可以从父级覆盖 iFrame 中的 javascript?如果是这样怎么办?

    我在我们的一款触摸屏应用程序中使用 Telerik RadSpell 控件 我已经设法将其样式设置得恰到好处 但是该死的东西使用 window alert 和 window confirm 来提示用户是否想要保留更改等 我想禁用这些警报 而

随机推荐