未收到PHP发布数据

时间:2017-11-19 01:20:29

标签: php html image post upload

我正在为我的主页制作一个小脚本,但我遇到了一个问题。

我尝试上传图片,但似乎没有收到表单中的POST数据。我做错了什么?

我已经更改了post_max_size以及php.ini中的所有内容。

这些是我得到的错误:

  

“注意:未定义的索引:图像在....”& “注意:未定义的索引:   提交....“

 <form method="POST" action="/eye/sites/handling/post.php" enctype="multipart/form-data">
     <div class="fileUpload">
        <span><i class="fa fa-folder-o" aria-hidden="true"></i> Bild wählen</span>
    <input type="file" class="upload" name="image"/>
    </div>
    <input type="submit" value="Upload It!" name="submit"/>
 </form>
<?php session_start();
error_reporting(E_ALL);
if (isset($_SESSION["login_stat"])) {
date_default_timezone_set('Europe/Berlin');
$config = "$_SERVER[DOCUMENT_ROOT]/eye/more/config.xml";
$xml = simplexml_load_file($config);
$picWidth = $xml->pic->width;
$picHeight = $xml->pic->height;
$fulldate = date('dmYHis');
if(isset($_POST["submit"])) {
  if (file_exists($_FILES['image']['tmp_name']) || is_uploaded_file($_FILES['image']['tmp_name'])) {
    $typeCheck = $_FILES['image']['type'];
    if ($typeCheck != "image/jpeg") {
      $error = "Not a .jpg";
      header('location: /eye/sites/post.php?stat=bad&error='.$error);
      exit;
    }
    $file = $_SERVER['DOCUMENT_ROOT']."/uploads/".$fulldate.".jpg";
    $type = "image/jpeg";
    move_uploaded_file($_FILES['image']['tmp_name'], $file);
    $file_thmb = $_SERVER['DOCUMENT_ROOT']."/uploads/!1A_thmb/".$fulldate.".jpg";
    include "resize-class.php";
    $resizeObj = new resize($file);
    $resizeObj->resizeImage($picWidth, $picHeight, 'crop');
    $resizeObj->saveImage($file_thmb, 100);
    // header('location: /eye/sites/post.php?stat=good');
  } else{
  // header('location: /eye/sites/post.php?stat=bad&error=No File');
  }
} else{
  // header('location: /eye/sites/post.php?stat=bad&error=No Data');

  echo  $_SERVER['CONTENT_TYPE'];
  echo "<br>";
  echo $_FILES['image']['tmp_name'];
  echo "<br>";
  echo $_POST['submit'];
  echo "<br>";

}
} else {
header('location: /eye/index.php?stat=in');
}
?>

编辑: 问题肯定是我的Localhost。 整个过程在我的Webspace上运行正常,但是在我的localhost上它没有用。 但是:我不再收到错误,点击提交它会转到应该保存图像的php文件,但什么也没发生。我只看到一个白页。 但就像我说的那样,它在我的网站空间上完美运行..

2 个答案:

答案 0 :(得分:1)

如果这是在您的本地计算机上运行,​​请快速检查以确保您的&#34; php.ini&#34;文件配置为允许文件上传。

的php.ini

file_uploads = On

代码看起来很好。检查表单操作是否发布到正确的路径,以及我是否建议使用更简单的方法来测试文件上载功能,然后再使其更复杂。使用以下方法开始测试。

if (isset($_POST["submit"])) {
    if (file_exists($_FILES['image']['tmp_name']) || is_uploaded_file($_FILES['image']['tmp_name'])) {
        echo "Upload is working!";
    }
} 

让我们了解您的最新动态。

答案 1 :(得分:0)

也许这个一般信息对某人有帮助,因为它对我有帮助:提交的表单将只包含定义了“名称”属性的字段。 'id' 是不够的。

这个想法是 'id' 标识 DOM 中供 JavaScript 使用的元素(作为全局变量或用于 document.getElementById(ID)),但 'name' 标识名称和值将是发送到目标(“动作”)页面。

因此,有两种不同的识别属性,以两种不同的方式使用是有道理的。