簡體   English   中英

無法使用php上傳圖像文件來切斷服務器

[英]Can't upload image file with php to sever

我已經在html中創建了一個用於上傳圖像的表單,它看起來很完美,因為當我上傳圖像時,它給了我字符串“成功”,但是我無法在服務器中找到該文件。

這是我的代碼:

<?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'])));

      $expensions= array("jpeg","jpg","png");

      if(in_array($file_ext,$expensions)=== false){
         $errors[]="extension not allowed, please choose a JPEG or PNG file.";
      }

      if($file_size > 2097152){
         $errors[]='File size must be excately 2 MB';
        }

      if(empty($errors)==true){
         move_uploaded_file($file_tmp,"./photo/".$file_name);
         echo "Success";
      }
      else{
         print_r($errors);
      }
   }
?>

       <form action="" method="POST" enctype="multipart/form-data">
     <input type="file" name="image" />
     <input type="submit"/>

     <ul>
        <li>Sent file: <?php echo $_FILES['image']['name'];  ?>
        <li>File size: <?php echo $_FILES['image']['size'];  ?>
        <li>File type: <?php echo $_FILES['image']['type'] ?>
     </ul>

  </form>

檢查move_uploaded_file:

$ret_value = move_uploaded_file($file_tmp,"./photo/".$file_name);

if ($ret_value == false) die ("Ups! Couldn't actually move the temp file! No success at all.");

如果返回的是false(錯誤),則實際上無法從臨時文件中移出該文件,並且您仍然會收到“成功”消息,因為不會出現異常。

如果遇到錯誤,也許可以通過將文件移動到實際的現有目錄中來進行修復。

move_uploaded_file($file_tmp,"./poi/photo/".$file_name);

您上傳的圖片將清除所有驗證。

但是,您沒有將其存儲在正確的路徑中:

更改:

move_uploaded_file($file_tmp,"./photo/".$file_name);

至:

move_uploaded_file($file_tmp,"./poi/photo/".$file_name);

另外,對目錄poi施加寫權限。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM