【发布时间】:2015-09-17 02:17:54
【问题描述】:
我刚刚花了 4 个小时进行研究,但没有解决我的问题,所以我来了。我正在尝试设计自己的小块文件上传器,一切都运行良好。
我有一个主上传页面,可让您设置要上传的文件。然后它会自动从文件的字节中删除第一个块,并将其与其他一些信息一起放入一个表单中:
<form id="hiddenform" name="hiddenform" action="SecretChunkUploader.php" target="iframe" enctype="multipart/form-data" method="post">
<hidden id="Bytes" name="Bytes" value="" />
<hidden id="Pass" name="Pass" value="<?php echo $_POST['Pass'];?>" />
<hidden id="FileName" name="FileName" value="" />
<hidden id="PackageNumber" name="PackageNumber" value="" />
</form>
当通过这个 javascript 命令提交表单时,每个<hidden> 的值都会正确发送:
document.forms["hiddenform"].submit();
表单提交到 iframe:
<iframe id="iframe" name="iframe" onload="" style="display:block"></iframe>
提交后,iframe 会导航到表单的 action 属性中指定的页面。
一切正常,除了收到表格时。页面加载完毕,但是没有post数据,也没有设置post的变量。
这里是 SecretChunkUploader.php 的代码:
<?php
echo "Password: ".$_POST["Pass"]."<br/>";
echo "FileName: ".$_POST["FileName"]."<br/>";
echo "PackageNumber: ".$_POST["PackageNumber"]."<br/>";
echo "Bytes: ".$_POST["Bytes"];
?>
从 SecretChunkUploader.php 加载的页面如下所示:
Password:
FileName:
PackageNumber:
Bytes:
我已经尝试测试 isset() 并且它对所有 post 变量都返回 false。
我到底做错了什么?我已经测试并知道该表单可以正常工作,只是没有继续传递值。
提前感谢您的帮助!
【问题讨论】:
-
您提交表单的代码在哪里?这就是您的问题所在,这就是我们需要查看的代码。
-
document.forms["hiddenform"].submit();
-
它确实被调用了,因为它确实将 iframe 的 src 移动到 ChunkUploader,只是没有发布值。
-
您需要明确表格的位置。用户是否在 iframe 中填写表单?页面其他地方的表单和数据是否复制到隐藏表单?
-
HTML 中没有
<hidden>标签。
标签: php file post iframe upload