gpt4 book ai didi

php - Jquery文件上传隐藏的IFrame

转载 作者:行者123 更新时间:2023-11-29 22:22:51 26 4
gpt4 key购买 nike

我需要快速解释一下如何使用隐藏的 iframe 上传 AJAX 样式的文件。以下是与表单相关的 HTML 代码部分:

<div id = "file" class = "info">        
<form id="file_upload_form" method="post" enctype="multipart/form-data" action='script/uploadScript'>
<input name="file" id="file" size="27" type="file" /><br />
<input id = "uploadSubmit" type="submit" name="action" value="Upload" />
<iframe id="upload_target" name="upload_target" src="" style="width:0;height:0;border:0px solid #fff;"></iframe>
</form>
</div>

这是相关的 PHP:

public function uploadScript(){

$returnVals = array();

if ($_FILES["file"]["error"] > 0){
$returnVals['error'] = "Error: " . $_FILES["file"]["error"] . "<br />";
}else{
if ($_FILES["file"]["type"] != "text/plain"){
$returnVals['error'] = "Badtype";
}else{
$returnVals['text'] = file_get_contents($_FILES["file"]["tmp_name"]);
}
}

echo json_encode($returnVals);
}

因此,从本质上讲,PHP 会获取文件并检查它是否为文本文件。然后,我想在 javascript 中访问返回的 json。这就是我感到困惑的地方......

$("#file_upload_form").submit(function() {
$("#file_upload_form").target = "upload_target";
$("#upload_target").onload = uploadDone();

});

理想情况下,当上传完成并加载 iframe 时,这应该调用

function uploadDone() {
alert($("#upload_target").contents().find("body").text());
}

但是,那总是空白的。本质上,returnVals 被放置在 iframe 主体中,但在警报之后,因此警报中没有任何内容。那么,有没有办法弥补这个小缺陷呢?

关于如何做到这一点有更好的解释吗?我一整天都在用不同的示例代码等来打击它,但没有运气:/

我基本上希望能够提醒通过 php 代码返回的文本。顺便说一句,我这样做是因为我希望它能够在 IE7 和之后的所有浏览器上工作。

如果有任何帮助,我将不胜感激。感谢抽空!

最佳答案

好吧,我用过类似的东西:

$("#upload_target")[0].contentWindow.document.body.innerHTML

... 相反。但是一般的方法是相似的:检查这个字符串,如果它是空的,什么也不做(即立即返回)。否则继续分析这个 json。

关于php - Jquery文件上传隐藏的IFrame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11369726/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com