首页 > 解决方案 > 无法更改上传文件的文件夹位置

问题描述

我想将当前位于 php/images/ 中的 $target 目录更改为 uploads/images/,但由于某种原因它无法正常工作,并且没有图像上传到该文件夹​​,但仅限于 php/images 和我不知道这是什么原因造成的。

我上传的所有图像都上传到 phpmyadmin 并加载到我的 images.php 页面中,所以所有这些都在工作,只是关于 $target 的东西不起作用。

<?php

$db = mysqli_connect("localhost", "root", "", "media");

$msg = "";

if (isset($_POST['upload'])) {

  $image = $_FILES['image']['name'];

  $target = "php/images/".basename($image);

  $sql = "INSERT INTO images (image_name) "
          . "VALUES ('$image')";

  mysqli_query($db, $sql);

  if (move_uploaded_file($_FILES['image']['tmp_name'], $target)) {
      $msg = "Image uploaded successfully";
  }else{
      $msg = "Failed to upload image";
  }
}
?>

<form id='imageForm' method="POST" action="" enctype="multipart/form-data">
      <input type="hidden" name="size" value="1000000">
   <div>
       <input class="file-upload" type="file" name='image' accept='image/*' />
   </div>
   <div class="upload-button">
       <button class="" name='upload'>UPLOAD</button>
   </div>
</form>

图像.php

$db = mysqli_connect("localhost", "root", "", "media");
$uploaded = mysqli_query($db, "SELECT * FROM images");

while ($row = mysqli_fetch_array($uploaded)) {
  echo "<ul class='img_container'>";
      echo "<li><img class='img_box' src='php/images/".$row['image_name']."' ></li>";
  echo "</ul>";
}

标签: phpmysqlfile-uploadphpmyadminimage-uploading

解决方案


您在 mysql 数据库中插入 blob,您可以使用 blobs(base64) 但如果您加载太多图像会减慢您的网站速度,请看这里

   if (isset($_POST['upload'])) {
    if($_FILES['image']['error'] > 0) { echo 'Error during upload, try again'; }

        //We won't use $_FILES['file']['type'] to check the file extension for security purpose

        //Set up valid image extensions
        $extsAllowed = array( 'jpg', 'jpeg', 'png' );

        //Extract extention from uploaded file
            //substr return ".jpg"
            //Strrchr return "jpg"

        $extUpload = strtolower( substr( strrchr($_FILES['image']['name'], '.') ,1) ) ;
        //Check if the uploaded file extension is allowed

        if (in_array($extUpload, $extsAllowed) ) { 

        //Upload the file on the server

      $name = "{$_FILES['image']['name']}";
      $imgName = rand(5, 99999);
      $image = 'php/images/'.$imgName.'.jpg';
      $result = move_uploaded_file($_FILES['image']['tmp_name'], $image);

      }
        if(result){
        $sql = "INSERT INTO images (image_name) "
              . "VALUES ('$image')";
        mysqli_query($db, $sql);
        $msg = "Image uploaded successfully";
        }else{
         $msg = "Failed to upload image";
        }
    }

还要检查您是否有权在该目录上写入。


推荐阅读