PHP文件上传无法在同一表单上发送POST数据

时间:2012-08-21 03:02:04

标签: php file post upload get

我有一个基本用户名&密码表单,它也允许您上传图像。有一个创建按钮,它将用户带到uploader.php,它上传图像并输入用户名和信息。密码进入数据库。

在表单标记内:

< form enctype =“multipart / form-data”method =“POST”action =“uploader.php?uploader = avatar& username =<?php echo $ _POST ['username'];?>” >

问题:

用户名不会发布,也不会发布任何其他帖子。所有字段都在表单内。我已经检查了PHP file upload form cannot submit a POST variable?并在php.ini post_max_size = 8M内,并且upload_max_filesize = 2M

4 个答案:

答案 0 :(得分:3)

使用<input type="hidden"/>发布username和其他信息。

<form enctype="multipart/form-data" method="POST" action="uploader.php">
    <input type="hidden" name="uploader" value="avatar"/>
    <input type="hidden" name="username" value="<?php echo $_POST['username']; ?>" />
    ...
</form>

Sample.php

<form enctype="multipart/form-data" method="POST" action="uploader.php">
  <br/>Username : <input type="text" name="username"/>
  <br/>Password : <input type="password" name="password"/>
    <input type="hidden" name="uploader" value="avatar"/>
   <br/>File : <input type="file" name="file"/>
   <br/><input type="submit"/>
</form>

uploader.php

<?php
  print_r($_POST)  // debug  $_POST
  print_r($_FILES) // file

  //OR
  echo $_POST["username"];
  $file=$_FILES["file"];
  print_r(file);
?>

答案 1 :(得分:2)

听起来您想在一次提交中提交用户名和密码上传文件。

如果这是您想要的,您需要以下内容:

<form enctype="multipart/form-data" method="POST" action="uploader.php">
<input type="text" name="username" value="" />
<input type="password" name="password" value="" />
<input type="file" name="uploaded" />
...
</form> 

用户名和密码将在$_POST[]中提供,该文件将显示在$_FILES[]中。

答案 2 :(得分:-1)

当我尝试上传的文件大于PHP接受的最大文件大小时,我遇到了这个问题。看看:

ini_get('post_max_size')

ini_get('upload_max_filesize')

查看您的文件是否太大。我的解决方案是使用空($ _ POST)来确定文件是否太大(或发生了一些其他发布问题)并抛出异常。

答案 3 :(得分:-1)

奇怪的是,在添加enctype =“ multipart / form-data”属性之前,我遇到了同样的问题。此后,所有方法都起作用了