簡體   English   中英

帶有文件上傳的Wordpress自定義表單

[英]Wordpress custom form with fileupload

我有一個自定義的wordpress php頁面,其中有一個表單,該表單使用輸入字段中發布的數據更新數據庫。 現在,我將無法在指定文件夾中的文件/圖片上上傳,並將鏈接到文件/圖片的鏈接存儲在我的數據庫中。 我需要幫助來實現它,因為即使我已經嘗試了很多有關它的知識,我也完全不了解如何實現它。 這是我的代碼:

If($_POST['Submit'])
{

    global $wpdb;

    $medlemsnr=$_POST['medlemsnr'];
    $navn=$_POST['navn'];
    $baadnavn=$_POST['baadnavn'];
    $art=$_POST['art'];
    $vaegt=$_POST['vaegt'];
    $billede=$_POST['billede'];

    if($wpdb->insert(
                        'ct_storfanger_indberetninger',
                        array(
                        'Medlemsnr' => $medlemsnr,
                        'navn' => $navn,
                        'bådnavn' =>$baadnavn,
                        'art' =>$art,
                        'vægt' =>$vaegt,
                        'billede' =>$billede
                        )
                    ) == false) wp_die('Der var en fejl i indsendelsen. Kontakt venligst webmaster'); else echo 'Tak for din indsendelse. Den vil fremgå af listen så snart den er godkendt af juryen!<p />';

?>
<?php
}
else // else we didn't submit the form, so display the form
    {
?>

            <form action="" method="post" id="form">
            <table style="border:none;">
            <tr>
            <td style="border:none;width:25%">Medlemsnr</td>
            <td style="border:none;"><input name="medlemsnr" type="text" value="" /></td>
            </tr>
            <tr>
            <td style="border:none;">Navn</td>
            <td style="border:none;"><input name="navn" type="text" value="" /></td>
            </tr>
            <tr>
            <td style="border:none;">Bådnavn</td>
            <td style="border:none;"><input name="baadnavn" type="text" value="" /></td>
            </tr>
            <tr>
            <td style="border:none;">Art</td>
            <td style="border:none;">
            <?php 
                global $wpdb;
                $retrieve_data = $wpdb->get_results( "SELECT Art FROM ct_storfanger_arter");
            ?>
            <SELECT NAME="art"><option value=""></option>
            <?php
                foreach ($retrieve_data as $retrieved_data){ 
                    echo "<option value='" . $retrieved_data->Art . "'>" . $retrieved_data->Art . "</option>";
                }
            ?>
            </SELECT></td>
            </tr>
            <tr>
            <td style="border:none;">Vægt i gram</td>
            <td style="border:none;"><input name="vaegt" type="text" value="" /> gram</td>
            </tr>
            <tr>
            <td style="border:none;">Billede</td>
            <td style="border:none;"><input name="billede" type="file" value="" /></td>
            </tr>
            </table>
            <table style="border:none;">
            <tr>
            <td style="border:none;"><input type="submit" name="Submit" id="formsubmit" value="Indsend" /></form></td>
            </tr>
            </table>

            </form>
<?php
    } // end else no post['submit']
?>              

您可以使用此代碼作為參考,以下是HTML:

<!DOCTYPE html>
<html>
<body>

<form action="upload.php" method="post" enctype="multipart/form-data">
Select image to upload:
<input type="file" name="fileToUpload" id="fileToUpload">
<input type="submit" value="Upload Image" name="submit">
</form>

</body>
</html>

這將在PHP方面進行:

<?php
$target_dir = "uploads/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
$imageFileType = pathinfo($target_file,PATHINFO_EXTENSION);
// Check if image file is a actual image or fake image
if(isset($_POST["submit"])) {
    $check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
    if($check !== false) {
        echo "File is an image - " . $check["mime"] . ".";
        $uploadOk = 1;
    } else {
        echo "File is not an image.";
        $uploadOk = 0;
    }
}
?>

只需在一個單獨的文件夾上嘗試此操作,直到您了解代碼,然后便可以將其實現到您的wordpress修改中

而且,如果您要在該模塊上加載wp_init,則還可以使用wordpress函數wp_handle_upload:

if ( ! function_exists( 'wp_handle_upload' ) ) {
    require_once( ABSPATH . 'wp-admin/includes/file.php' );
}

$uploadedfile = $_FILES['file'];

$upload_overrides = array( 'test_form' => false );

$movefile = wp_handle_upload( $uploadedfile, $upload_overrides );

if ( $movefile && ! isset( $movefile['error'] ) ) {
    echo "File is valid, and was successfully uploaded.\n";
    var_dump( $movefile );
} else {
    /**
     * Error generated by _wp_handle_upload()
     * @see _wp_handle_upload() in wp-admin/includes/file.php
     */
    echo $movefile['error'];
}

這是功能參考: wp_handle_upload

暫無
暫無

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

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