首页 > 解决方案 > 带有自定义表单的 WordPress 子主题模板 - 文件上传到目录失败

问题描述

我创建了一个包含 PHP 表单的子主题模板。上传文件未保存在目录中。我想将图像文件上传到目录并将文件的位置存储在数据库中。我尝试了不同enter code here的方法但失败了。有什么建议么? 这是我的表单模板代码

<form id="membership" method="post" action="" autocomplete="off">
        <?php if ($row_result == 1) {
            /*$to = $_POST['memail']; //sendto@example.com
            $subject = 'Membership application acknowledgement';
            $message = 'Your application for the NNHS membership has been submitted successfully. Kindly wait for the approval from the Admin.';
            $headers = array('Content-Type: text/html; charset=UTF-8');
            
            wp_mail( $to, $subject, $message, $headers ); */
    echo "<h5> <center>Form has been submitted </center></h5>";
} else {
    echo $failed;
        echo '<h5> <center>Fill all the required fields</center></h5>';
        
    }
    ?>
       <p><span class="membership-error">* required field</span></p>
 
        <label for="mupload"><b>Photo upload (Passport size, less than 500kb) </b></label><span class="membership-error">* <?php echo $errorfupload ;?></span>
        <input type="file" accept="image/png, image/jpeg" name="file" action="upload.php" enctype="multipart/form-data" id="upload" required>
        <br><br><br>
        
        <div class="mform-btn-container">
            <div class="mform-btn">

                <button type="submit" class="registerbtn" name="formsubmit">Register</button>
            </div>
        </div>
    </form>

我的function.php代码

全球 $wpdb;

$mupload = $_POST["文件"];

if ($_POST) { $error = array();

if($_FILES['file']['name'] != ''){
    $uploadedfile = $_FILES['file'];
    $upload_overrides = array( 'test_form' => false );

    $movefile = wp_handle_upload( $uploadedfile, $upload_overrides );
    $imageurl = "";
    if ( $movefile && ! isset( $movefile['error'] ) ) {
   $imageurl = $movefile['url'];
   echo "url : ".$imageurl;
    } else {
   echo $movefile['error'];
    }
}

if (count($error) == 0)   {
    move_uploaded_file($upload_temp, $upload_dir.$uploadfile);
    $data_array = array('upload' => $mupload
        );
    
        $table_name = 'wp_nnhs_membership';
        $row_result = $wpdb->insert($table_name, $data_array, $format=null);

}
else {
    $failed = "Submission failed";
}

}

标签: phpwordpressformsfile-uploadfile-handling

解决方案


推荐阅读