Php 如何使用前端post提交表单附加文件?

Php 如何使用前端post提交表单附加文件?,php,plugins,wordpress,Php,Plugins,Wordpress,我正在尝试为WordPress制作一个作业上传程序,我希望登录的用户能够通过前端的表单提交数据,并让它在后端创建一个帖子。我已经能够创建一个快捷码函数,允许管理员选择他们希望该表单出现的位置,当表单提交时,它会在后端创建一个帖子。问题是,我希望登录的用户也能够将文件附加到帖子,以便管理员可以从后端下载文件 以下是表单的快捷码: add_shortcode('assignmentForm','wprmAssignmentForm'); function wprmAssignmentForm() {

我正在尝试为WordPress制作一个作业上传程序,我希望登录的用户能够通过前端的表单提交数据,并让它在后端创建一个帖子。我已经能够创建一个快捷码函数,允许管理员选择他们希望该表单出现的位置,当表单提交时,它会在后端创建一个帖子。问题是,我希望登录的用户也能够将文件附加到帖子,以便管理员可以从后端下载文件

以下是表单的快捷码:

add_shortcode('assignmentForm','wprmAssignmentForm');
function wprmAssignmentForm() { 

if (is_user_logged_in()){ ?>
    <form id="custom-post-type" name="custom-post-type" method="post" action="">
        <p>
        <label for="title">Assignment Title</label><br />
        <input type="text" id="title" value="" tabindex="1" size="20" name="title" />
        </p>

        <p>
        <label for="description">Assignment Content</label><br />
        <?php //wp_editor( '', 'description', array( 'media_buttons' => false, 'textarea_rows'=>5 ) ); ?>
        <textarea id="description" tabindex="3" name="description" cols="50" rows="6"></textarea>
        </p>

        <p>
        <label for="upload">Upload File</label><br />
        <input type="file" name="upload" id="upload">
        </p>

        <p align="right"><input type="submit" value="Publish" tabindex="6" id="submit" name="submit" /></p>

        <input type="hidden" name="post-type" id="post-type" value="custom_posts" />
        <input type="hidden" name="action" value="custom_posts" />

        <?php wp_nonce_field( 'name_of_my_action','name_of_nonce_field' ); ?>

    </form>

    <?php

    if($_POST){
        wprmSaveSubmission();
    }

}
else {
    echo '<p>You must be logged in to submit an assignment!</p>';
}

}

我在表单中有文件上传器字段,但我不知道如何将上传保存在某个地方,然后作为下载提供给后端的帖子。关于如何实现这一点,有什么想法吗?

Wordpress提供了预定义的功能,可以将媒体上传到网站。在自定义代码中使用这些功能,您可以将wordpress支持的任何文件作为附件上传到媒体中

下面是可以帮助您进一步了解如何在代码中使用这些函数的详细信息


试试这个,让我知道这是否解决了你的问题。

Wordpress提供了预定义的功能,可以将媒体上传到网站。在自定义代码中使用这些功能,您可以将wordpress支持的任何文件作为附件上传到媒体中

下面是可以帮助您进一步了解如何在代码中使用这些函数的详细信息


试试这个,让我知道这是否解决了您的问题。

我尝试使用上面的文档,但是文档是针对已经存在的帖子的,并且有一个ID可以插入表单中。我试图修改它以采用创建的帖子的帖子ID,但没有成功。以上表格创建了一个全新的帖子;当我还没有ID的时候,你知道如何附加一个文件吗?我试着使用上面的文档,但是文档是为那些已经存在并且有ID可以插入表单的帖子准备的。我试图修改它以采用创建的帖子的帖子ID,但没有成功。以上表格创建了一个全新的帖子;当我还没有身份证时,你知道如何附加文件吗?
function wprmSaveSubmission() {

if ( empty($_POST) || !wp_verify_nonce($_POST['name_of_nonce_field'],'name_of_my_action') ) {
    exit;
}
else {

    // Basic validation
    if (isset ($_POST['title'])) {
        $title =  $_POST['title'];
    } 
    else {
        echo 'Please enter a title';
        exit;
    }
    if (isset ($_POST['description'])) {
        $description = $_POST['description'];
    }
    else {
        echo 'Please enter the content';
        exit;
    }

    // Add the content of the form to $post as an array
    $post = array(
    'post_title' => wp_strip_all_tags( $title ),
    'post_content' => $description,
    'post_status' => 'publish',            
    'post_type' => 'wprm-assignments'  
    );
    wp_insert_post($post);  

}

}