【问题标题】:Image Upload PHP Code Error图片上传PHP代码错误
【发布时间】:2017-07-13 20:50:37
【问题描述】:

我的错误日志一直在我的图片上传表单的 PHP 代码中显示错误。

我找不到错误????

<?php
$target_dir    = "postingImages/";
$target_file   = $target_dir . basename($_FILES["postingImage"]["name"]);
$uploadOk      = 1;
$imageFileType = pathinfo($target_file, PATHINFO_EXTENSION);
if (isset($_POST["submit"])) {
$check = getimagesize($_FILES["postingImage"]["tmp_name"]);
if ($check !== false) {
    echo "" . $check[""] . "";
    $uploadOk = 1;
} else {
    echo "  &#xd7; FILE IS NOT AN IMAGE";
    $uploadOk = 0;
}
}
if (file_exists($target_file)) {
echo "  &#xd7; THIS IMAGE ALREADY EXIST ON SERVER";
$uploadOk = 0;
}
if ($_FILES["postingImage"]["size"] > 500000) {
echo "  &#xd7; FILE IS TOO LARGE";
$uploadOk = 0;
}
if ($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg" && $imageFileType != "gif") {
echo "  &#xd7; ONLY JPG, JPEG, PNG & GIF FILES ARE PERMITTED";
$uploadOk = 0;
}
if ($uploadOk == 0) {
echo "  &#xd7; IMAGE WAS NOT UPLOADED";
} else {
if (move_uploaded_file($_FILES["postingImage"]["tmp_name"], $target_file)) {
    echo '<img class="fixed-ratio-resize" src="http://www.rebelplanetnews.com/postingImages/' . basename($_FILES["postingImage"]["name"]) . '">';
} else {
    echo "  &#xd7; IMAGE WAS NOT UPLOADED";
}
}
?>

这里第9行代码不断弹出错误:

      echo "" . $check[""] . "";

再次......我自己无法发现错误,所以如果有人能帮助我理解我在这里做错了什么,我将不胜感激......

注意:表单可以正常工作并成功上传图片。但我仍然得到错误。

【问题讨论】:

  • 错误是什么? -_-
  • 您希望$check[""] 会返回什么??
  • 因为你使用$check[""]而不是$check
  • 做一个print_r($check); 而不是回声。然后你会看到所有属性 getimagesize 在这个数组中返回,你可以像这样访问它们 echo $check[0] (将打印宽度)
  • ...和echo "" . $whatever . "";echo whatever; 是一回事。不需要引号。

标签: php forms file-upload image-uploading


【解决方案1】:

你的问题是数组$check[]的索引,你的值不能是空字符串,替换为$check[0]

这里是代码

HTML 索引.html

<form name="f1" action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="postingImage"><br>
<input type="submit" name="submit" value="Enviar">
</form>

PHP 上传.php

<?php
$target_dir    = "postingImages/";
$target_file   = $target_dir . basename($_FILES["postingImage"]["name"]);
$uploadOk      = 1;
$imageFileType = pathinfo($target_file, PATHINFO_EXTENSION);
if (isset($_POST["submit"])) {
    $check = getimagesize($_FILES["postingImage"]["tmp_name"]);
    if ($check !== false) {
       echo "Image Size: ". $check[0] ."<br>";
       $uploadOk = 1;
    } else {
       echo "  &#xd7; FILE IS NOT AN IMAGE";
       $uploadOk = 0;
    }
}
if (file_exists($target_file)) {
    echo "  &#xd7; THIS IMAGE ALREADY EXIST ON SERVER";
    $uploadOk = 0;
}
if ($_FILES["postingImage"]["size"] > 500000) {
    echo "  &#xd7; FILE IS TOO LARGE";
    $uploadOk = 0;
}
if ($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != 
"jpeg" && $imageFileType != "gif") {
     echo "  &#xd7; ONLY JPG, JPEG, PNG & GIF FILES ARE PERMITTED";
     $uploadOk = 0;
 }
if ($uploadOk == 0) {
    echo "  &#xd7; IMAGE WAS NOT UPLOADED";
} else {
if (move_uploaded_file($_FILES["postingImage"]["tmp_name"], $target_file)) {
    echo '<img class="fixed-ratio-resize" src="postingImages/' . 
    basename($_FILES["postingImage"]["name"]) . '">';
} else {
    echo "  &#xd7; IMAGE WAS NOT UPLOADED";
}
}
?>

【讨论】:

  • 弗拉基米尔......不幸的是......您的代码在输出顶部打印(示例)“图像大小:527”。上面的一些其他建议也在输出的顶部打印代码。
  • 如果您不想在顶部打印代码,只需注释或删除以下行 // echo "Image Size:"。 $ 检查 [0]。 "";
猜你喜欢
  • 2013-01-11
  • 2016-03-08
  • 2015-11-02
  • 2015-11-25
  • 2012-12-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-01-02
相关资源
最近更新 更多