在表单中使用文件和文本时_POST为空

时间:2014-09-27 15:47:40

标签: php html http-post

我有以下html

<form action="upload.php" method="get" enctype="multipart/form-data">
Enter 10 digit mobile number &nbsp;<input id="imgphno" type="text" maxlength="10" />
<br/><br/>
<input id="file" type="file" name="file" />
<br/><br/>
<input type="submit" name="submit" value="Send" id="sndimg"/>
</form>

当我运行浏览器地址栏时显示

http://116.75.128.138/balasaheb/upload.php?file=thumb.jpg&submit=Send

如何访问upload.php中的文本框内容?

2 个答案:

答案 0 :(得分:2)

您正在使用GET方法将表单数据发送到上传页面。

您可以使用_GET["submit"] _GET["file"]

来覆盖这些变量

名称属性添加到<input id="imgphno" type="text" maxlength="10" />

但您需要使用POST方法发送数据以达到thumb.jpg的内容。

答案 1 :(得分:1)

  使用表格中的文件和文字时,

_POST为空

上传文件时,必须使用POST而不是GET。上传不适用于GET方法。

  • 原因是你正在使用GET方法。将您的方法更改为method="post"

另外请确保您的PHP包含$_POST而不是$_GET,但您尚未向我们展示。

如果要获取文本框的值,请使用表单元素命名:

<input id="imgphno" type="text" maxlength="10" name="textbox" />
                                               ^^^^^^^^^^^^^^

然后将其用作:

$text = $_POST['textbox'];

您不能仅依靠idname来传递表单元素。

然后按照你的意愿去做,但是再次使用POST ...不要GET,因为你也在上传。


根据手册 http://php.net/manual/en/function.move-uploaded-file.php

  

此函数检查以确保filename指定的文件是有效的上载文件(意味着它是通过PHP的HTTP POST上载机制上传的)。如果文件有效,它将被移动到目标给出的文件名。

Stack上给出的另一个答案是支持这个:

  

move_uploaded_file()仅适用于通过POST上传的文件。