【问题标题】:Upload file code don't upload image in PHP上传文件代码不要在PHP中上传图片
【发布时间】:2023-01-02 17:49:02
【问题描述】:

我试图在 XAMPP 中的 htdocs 文件夹中上传一个文件夹。

我按照move_uploaded_file的规则还是不行。

这是我当前的代码:

<?php 
   if(isset($_POST['submit'])){
      $allowed_ext = array('png', 'jpg', 'jpeg', 'gif');

      if(!empty($_FILES['upload']['name'])){
        print_r($_FILES);
        $file_name = $_FILES['upload']['name'];
        $file_size = $_FILES['upload']['size'];
        $file_tmp = $_FILES['upload']['tmp_name'];
        $target_dir = "uploads/{$file_name}";

        // Get file ext
        $file_ext = explode('.', $file_name);
        $file_ext = strtolower(end($file_ext));

        // Validate file ext
        if(in_array($file_ext, $allowed_ext)) {
            // verify size
            if($file_size <= 1000000) { // 1000000 bytes = 1MB
              // Upload file
              move_uploaded_file($file_tmp, $target_dir);
              $message = '<p style="color: green;">File uploaded!</p>';
            } else {
                $message = '<p style="color: red;">File to large</p>';
            }
        } else {
          $message = '<p style="color: red;">Invalid file type</p>';
        }
      } else {
        $message = '<p style="color: red;">Please choose a file</p>';
      }
   }
?>


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>File Upload</title>
</head>
<body>
    <?php echo $message ?? null; ?>
    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST" enctype="multipart/form-data">
    Select image to upload:
    <input type="file" name="upload" />
    <input type="submit" value="submit" name="submit" />
</form>
</body>
</html>

现在图像没有移动到我当前目录中的 uploads 文件夹。

知道为什么吗?

【问题讨论】:

  • 你收到的信息是什么
  • 也添加html代码
  • 它只是说文件上传成功。当我检查上传文件夹时。我找不到我上传的文件
  • 检查上传文件夹是否有写权限
  • if(move_uploaded_file($file_tmp, $target_dir)) { $message = '<p style="color: green;">文件已上传!</p>'; } else { $message = '<p style="color: green;">文件上传失败!</p>'; }

标签: php upload


【解决方案1】:

试试这个:

<?php
   if(isset($_FILES['image'])){
      $errors= array();
      $file_name = $_FILES['image']['name'];
      $file_size =$_FILES['image']['size'];
      $file_tmp =$_FILES['image']['tmp_name'];
      $file_type=$_FILES['image']['type'];
      $file_ext=strtolower(end(explode('.',$_FILES['image']['name'])));
      
      $extensions= array("jpeg","jpg","png");
      
      if(in_array($file_ext,$extensions)=== false){
         $errors[]="extension not allowed, please choose a JPEG or PNG file.";
      }
      
      if($file_size > 1000000){
         $errors[]='File size must be excately 1 MB';
      }
      
      if(empty($errors)==true){
         move_uploaded_file($file_tmp,"uploads/".$file_name); //create a folder  'uploads' in your folder
         echo "Success";
      }else{
         print_r($errors);
      }
   }
?>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-21
    • 2017-10-05
    • 2013-08-14
    • 2017-03-26
    相关资源
    最近更新 更多