簡體   English   中英

PHP Move_uploaded_file function 不工作

[英]PHP Move_uploaded_file function not working

這是用於圖像上傳的 HTML 代碼

<form id="imageUpload" action="" class="form-horizontal form-material" method="POST" enctype="multipart/form-data">
    <div class="form-group">
        <label class="col-md-6">Image</label>
        <div class="col-md-6">
        <input type="file" class="form-control form-control-line" name="portfolioimage">
    </div>
    <div class="form-group">
        <label class="col-md-6">Select Package</label>
        <div class="col-md-6">
            <select class="form-control form-control-line" name="packageName">
                <option selected disabled>-- SELECT PACKAGE -- </option>
                <?php
                    while ($row = mysqli_fetch_row($result)) {
                        echo "<option>$row[1]</option>";
                    }
                ?>
            </select>
        </div>
    </div>
    <div class="form-group ">
        <div class="col-sm-6">
            <input type="submit" class="btn btn-success" value="ADD" name="addbtn">
        </div>
    </div>
</form> 

這是我的 php 代碼,用於將圖像上傳為 package 名稱和日期時間戳。

<?php
if(isset($_POST['addbtn']))
{
    $errors= array();
    $package_name = $_POST['packageName'];
    $query = "select id from packages where title='$package_name'";
    $result = mysqli_query($con,$query);
    $row = mysqli_fetch_row($result);
    $package_id = $row[0];
    $image=$_FILES['portfolioimage']['name'];
    // $file_size =$_FILES['portfolioimage']['size'];
    $file_tmp =$_FILES['portfolioimage']['tmp_name'];
    $file_type=$_FILES['portfolioimage']['type'];
    $file_ext=strtolower(end(explode('.',$_FILES['portfolioimage']['name'])));
    $file_tmp=$_FILES['portfolioimage']['tmp_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 > 2097152){
    //    $errors[]='File size must be excately 2 MB';
    // }
    $timestamp = date("mdYHis");
    $imageName = $package_name . $timestamp ."." . $file_ext;

    if(empty($errors)==true)
    {   
        $uploadDir = '../Admin/images/portfolio_images';
        $dest = $uploadDir . "/" . $imageName ;
        $moveIMG = move_uploaded_file($file_tmp,$dest);
        if($moveIMG){
            echo"<script language='javascript'> alert('Image  Moved') </script>";
        } else {
            echo"<script language='javascript'> alert('Move failed') </script>";
        }
        $str = "INSERT INTO portfolio_images (image,package_id) VALUES ('$imageName',$package_id)";
            $query = mysqli_query($con,$str);
            if($query == 1)
            {
                echo"<script language='javascript'> alert('Image  Uploaded') </script>";
            }
            else
            {
                echo"<script language='javascript'> alert('".$str."') </script>";
            }
    }
    else
    {
       print_r($errors);
    }
}
?>

if 部分 $moveIMG 中的條件給出錯誤值。 嘗試了不同的方法來存儲在 dest 路徑,但經過這么多嘗試它沒有工作。 它在第一次提交時使用相同的代碼,但現在它不起作用。

可能是你們中的一個人可以找到錯誤!

好的。 經過@ADyson 在評論中的大量挖掘和一些建議。 要知道,如果您為文件大小設置條件並檢查文件大小,您會得出具體的文件大小,但要上傳大於 2MB 的文件,還必須更改 php.init max_file_size。 但是您仍然無法將文件移動到 move_uploaded_files() 所做的另一個文件夾。 我不知道如何改變它,但任何人都知道這真的會很感激。

暫無
暫無

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

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