【问题标题】:PHP: 2 Forms, 1 Being File UploadPHP:2个表格,1个文件上传
【发布时间】:2013-04-02 19:34:05
【问题描述】:

我有一个个人资料页面,我想在其上上传照片作为单独的操作。我有第一个表单成功提交到页面,当我提交照片表单时,页面返回空白并显示空消息。

HTML

<form method="post" action="profile.php" id="main">
  <input name="txtFirstName" type="text" value="<?php echo $sFirstName; ?>">
  <input type="submit" name="btnSubmit" value="Submit" />
</form>

<form method="post" action="profile.php" id="photo_upload" enctype="multipart/form-data">
  <img src="<?php echo($sPath); ?>" height='100' width='100' id="imgProfile" />
  <br>
  <input type="file" name="fUpload" id="fUpload">
  <br>
  <input type="submit" name="btnUploadPhoto" value="Upload" class="cancel"/>
</form>

PHP

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
  if ($_POST['btnSubmit']) {
    $sFirstName = $_POST['txtFirstName'];
  }
  else if ($_POST['btnUploadPhoto']) {
    // DO MY MOVE LOGIC
  }
}

当调用“btnSubmit”时,页面加载并且文本框获取输入的名称。当调用“btnUploadPhoto”时,我在屏幕上得到了这个,没有别的:

{错误:'',消息:''}

如何让页面重新加载原始表单?

【问题讨论】:

  • 空白页 = php 错误,并且您已关闭 display_errors/error_reporting。尝试追踪错误时打开所有 php 调试工具。否则你会在半夜关灯的情况下追赶一只黑猫穿过煤矿。
  • Marc - 我打开了显示错误和报告,我仍然得到一个带有 {error :'', msg: '' } 的页面,没有别的。
  • 您发布的代码中的任何内容都不会输出您收到的错误消息。您可能还没有发布更多代码,这对您获得的结果负责。作为一种解决方法,复制您的 profile.php 并在一个文件中删除与文件上传相关的任何内容(应该有效),在另一个文件中删除与其他配置文件更改相关的任何内容,并在两种形式中使用两个操作。这将分离东西,你也许可以调试。

标签: php html file upload


【解决方案1】:

当您上传文件时,您需要检查文件是否已在您的 PHP 代码中提交。这是执行此操作的代码:

isset($_FILES['fUpload'])

【讨论】:

  • 我得到了一个有效的文件并且可以读取文件的属性。帖子发生后,页面有 {error: '', msg: '' } 并且没有其他内容加载。
  • 这不是一个有效的上传测试。上传失败仍会填充 $_FILES。
猜你喜欢
  • 1970-01-01
  • 2015-10-30
  • 1970-01-01
  • 1970-01-01
  • 2015-03-24
  • 2017-06-13
  • 1970-01-01
  • 2021-11-17
  • 1970-01-01
相关资源
最近更新 更多