微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 filepond

如何解决使用 filepond

我正在网站上创建一个表单,其中还需要上传文件(图像和 pdf)。到目前为止,我使用了一个简单的 input type="file" 元素,与后端的 PHP 文件耦合(代码片段如下):

$allowed = array('jpg','jpeg','pdf','png');
if(isset($_FILES['uploadctl']) && $_FILES['uploadctl']['error'] == 0){
    $extension = pathinfo($_FILES['uploadctl']['name'],PATHINFO_EXTENSION);

    if(!in_array(strtolower($extension),$allowed)){
        echo '{"status":"not_allowed"}';
        exit;
    }

    // create folder to upload files to
    $id = session_id();
    $user_folder = 'user_data/' . $id;
    if( is_dir($user_folder) === false ){
        mkdir($user_folder); 
    }
    if(move_uploaded_file($_FILES['uploadctl']['tmp_name'],$user_folder . "/" . $_FILES['uploadctl']['name'])){
        echo '{"status":"success"}';
        exit;
    }
    echo '{"status":"error"}';
}

这很好用。但是,我想要更多的上传表单功能,并研究了 filepond。我按照文档创建了 filepond 对象,并将样板代码复制到 ./file-pond-assets,我打算稍后适应我的需求:

<input type="file" name="uploadctl" multiple accept=".pdf,.png,.jpg,.jpeg">
<script>
            const inputElement = document.querySelector('input[type="file"]');
            const pond = FilePond.create( inputElement );
            pond.setoptions({
                server: './file-pond-assets'
            });
</script>

显示网站时显示内容。尝试上传文件时,前端看起来不错,因为出现了 upload complete 消息。但是,我在 ./file-pond-assets 内的 tmpuploads 文件夹中找不到上传文件。我尝试更改文件夹的权限并检查了控制台,但找不到错误消息。 config.PHP 文件也指向正确的文件夹。我错过了什么让我的文件没有出现在我的服务器上?我想将上传保留为多部分/表单数据。

解决方法

这是我在 gihtub 上的示例文件池 PHP 服务器实现存储库的链接 回购链接:https://github.com/Onihani/filepond-php-server-example 实时预览:http://www.ics-courses.co.uk/natbongo/filepond-php-server-example/

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。