Home Articles

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

Asked
Viewed 5 times
2

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

Within the form tag:

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

The problem:

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

3 Answers

  • 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">
      
    Username : <input type="text" name="username"/>
    Password : <input type="password" name="password"/> <input type="hidden" name="uploader" value="avatar"/>
    File : <input type="file" name="file"/>
    <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);
    ?>
    
  • 2

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

    ini_get('post_max_size')

    ini_get('upload_max_filesize')

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

  • -1

    听起来你想提交用户名和密码,并在一次提交中上传一个文件 .

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

    <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[] 中 .

Related