使用 filepond 为文件上传创建 PHP 后端
Creating PHP backend for file upload using 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[=28] 中的 tmp 和 uploads 文件夹中找不到上传的文件=].我尝试更改文件夹的权限并检查了控制台,但找不到错误消息。 config.php 文件也指向正确的文件夹。我错过了什么让我的文件没有出现在我的服务器上?我想将上传内容保留为 multipart/form-data.
这是我在 gihtub 上的示例文件池 PHP 服务器实现存储库的 link
回购 Link:https://github.com/Onihani/filepond-php-server-example
实时预览:http://www.ics-courses.co.uk/natbongo/filepond-php-server-example/
我正在网站上创建一个表单,其中也需要上传文件(图片和 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[=28] 中的 tmp 和 uploads 文件夹中找不到上传的文件=].我尝试更改文件夹的权限并检查了控制台,但找不到错误消息。 config.php 文件也指向正确的文件夹。我错过了什么让我的文件没有出现在我的服务器上?我想将上传内容保留为 multipart/form-data.
这是我在 gihtub 上的示例文件池 PHP 服务器实现存储库的 link 回购 Link:https://github.com/Onihani/filepond-php-server-example 实时预览:http://www.ics-courses.co.uk/natbongo/filepond-php-server-example/