Internet Exploder从隐藏的iframe提交空文件

时间:2014-07-31 13:41:17

标签: c# asp.net-mvc-4 file-upload jqgrid internet-explorer-9

我有一个带有jqGrid的页面。在该网格上,我为寻呼机添加了一个自定义按钮,当单击该按钮时,会打开一个文件浏览器,供用户上传excel文件。文件输入以表单形式包装,并以隐藏的iframe为目标。

我知道在Internet Explorer中,您无法使用javascript提交文件。我正在试图找出一种方法来提交iframe并实际上将文件传递给带有值的服务器。

在Chrome中,我可以通过触发单击提交按钮来提交它,我已经离开页面文件输入更改并获取文件,但在Internet Exploder中它返回null。

HTML:

<form action="/ManagedCatalog/ImportContractsFromExcelFile" method="post" enctype="multipart/form-data" target="upload_target" onsubmit="">
    <input type="file" id="uploadedFile" name="uploadedFile" accept=".csv, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel" />
    <input type="submit" id="submitBtn" name="submitBtn" value="Upload" style="position: absolute; z-index: 19999; top: -1000px; left: -1000px;"/>
</form>
<iframe id="upload_target" name="upload_target" src="#" style="width: 0; height: 0; border: 0px solid #fff;"></iframe>

自定义导航按钮触发:

    function ImportContractsFromExcelFile() {
        $('#uploadedFile').trigger('click');
    }

我必须在Chrome中工作:

    $('#uploadedFile').change(function () {
        $('#submitBtn').trigger('click');
    });

完全鼓励任何提示,技巧,建议,评论或殴打。 请帮助。

编辑:

我这样做,因为我的团队和我正在重写的银色应用程序以这种方式行动,客户希望保持这种行为。我可以沿着jquery对话框窗口路线向用户提供一个单击按钮,但我想尝试保持尽可能相似。

0 个答案:

没有答案