2

我想使用 PHP 使用 iFrame 概念上传文件和 idno。我在我的项目中使用了这段代码。

仅此代码就可以正常工作。文件正在上传。但是当它在我的项目中时,它不起作用。它显示

未定义的索引我的文件

(我总是在 Firefox 浏览器中测试。)

即使是额外的参数 idno 也不会发送......

但在同一个页面中,HTML5 拖放工作正常。

任何帮助?

这是我的代码:

<form method="post" action="Nupload.php" enctype="multipart/form-data" class="manual" id="upload_form" target="upload_target">or
<input type="file" name="myfile" id="myfile" style="display:none" onchange="javascript:getReady();" />
<label for="file">select files from your computer...</label>
<input type="hidden" name="idno" value="2013456" />
<iframe src="Nupload.php" name="upload_target" id="upload_target" style="display:none;">    
</iframe>
</form>

脚本:

function getReady()
{
document.getElementById("upload_target").onload = uploadDone();
document.getElementById("upload_form").submit();
}

function uploadDone()
{
var content="";
var iframeId=document.getElementById("upload_target");
if (iframeId.contentDocument) {
content = iframeId.contentDocument.body.innerHTML;
} else if (iframeId.contentWindow) {
content = iframeId.contentWindow.document.body.innerHTML;
} else if (iframeId.document) {
content = iframeId.document.body.innerHTML;
}
alert(content)
}

上传.php

if( isset($_FILES["myfile"]) )
{
    $target = basename($_FILES["myfile"]["name"]);

    if(move_uploaded_file($_FILES["myfile"]["tmp_name"],"./temp/".$target))
    {
        $res = array("success"=>true,"file_name"=>$_FILES["myfile"]["name"],"size"=>$_FILES["myfile"]["size"]);
    }
    else
        $res = array("success"=>false,"desc"=>"no");
    echo json_encode($res);
}
4

0 回答 0