jensostertag / uploadhelper
一个用于处理上传文件的 PHP 库
1.0.0
2023-07-14 05:08 UTC
Requires
- php: >=8.1.0
This package is not auto-updated.
Last update: 2024-09-23 17:32:30 UTC
README
这是一个 PHP 辅助库,用于帮助处理上传文件。
PHP 将上传文件存储在 $_FILES 数组中。然而,这个数组并不容易用于多个文件的上传。这个库提供了一种简单的方式来检查是否允许文件上传,并以更方便的方式获取文件。
安装
要安装此库,请使用 composer 将其包含到项目中
{
"require": {
"jensostertag/uploadhelper": "1.0.0"
}
}
使用方法
上传单个文件
以下示例展示了如何允许上传单个文件。
假设你有一个名为 fileInputName 的文件输入表单
<form method="post" enctype="multipart/form-data"> <input type="file" name="fileInputName" id="file"> <input type="submit" value="Upload"> </form>
在表单提交时调用的 PHP 脚本中,使用 UploadHelper 类来检查是否允许文件上传以及获取上传的文件
$uploadHelper = new UploadHelper(); // File Upload Options $uploadHelper->setInputName("fileInputName") // Set the Name of the File Input ->setMultiple(false) // Only allow a single File ->setAllowedMimeTypes(["image/jpeg", "image/png"]) // Only allow JPEG and PNG Files ->setMaxSize(2) // Only allow Files up to 2 MiB ->handleUploadedFiles(); // Check if there were Errors during the Upload if(!($uploadHelper->successful())) { $errors = $uploadHelper->getErrors(); return; } // Get the uploaded File $uploadedFile = $uploadHelper->getUploadedFiles();
如果文件上传成功,则 $uploadedFile 将是一个具有以下结构的数组
[
[0] => [
"name" => "file.jpeg",
"type" => "image/jpeg",
"tmp_name" => "/tmp/php/php1h4j1o",
"error" => 0,
"size" => 1024
]
]
上传多个文件
以下示例展示了如何允许上传多个文件。
假设你有一个名为 fileInputName 的文件输入表单,设置了 multiple 属性
<form method="post" enctype="multipart/form-data"> <input type="file" name="fileInputName" id="file" multiple> <input type="submit" value="Upload"> </form>
在表单提交时调用的 PHP 脚本中,使用 UploadHelper 类来检查是否允许文件上传以及获取上传的文件
$uploadHelper = new UploadHelper(); // File Upload Options $uploadHelper->setInputName("fileInputName") // Set the Name of the File Input ->setMultiple(true) // Allow multiple Files ->setAllowedMimeTypes(["image/jpeg", "image/png"]) // Only allow JPEG and PNG Files ->setMaxSize(2) // Only allow Files up to 2 MiB ->handleUploadedFiles(); // Check if there were Errors during the Upload if(!($uploadHelper->successful())) { $errors = $uploadHelper->getErrors(); return; } // Get the uploaded Files $uploadedFiles = $uploadHelper->getUploadedFiles();
如果文件上传成功,则 $uploadedFiles 将是一个具有以下结构的数组
[
[0] => [
"name" => "file1.jpeg",
"type" => "image/jpeg",
"tmp_name" => "/tmp/php/php1h4j1o",
"error" => 0,
"size" => 1024
],
[1] => [
"name" => "file2.jpeg",
"type" => "image/jpeg",
"tmp_name" => "/tmp/php/php1h4j1o",
"error" => 0,
"size" => 1024
],
// ...
]
文件上传选项
可以为文件上传设置以下选项
上传错误
你可以使用 successful() 方法检查文件上传过程中是否有错误。如果没有错误,它返回 true;如果有至少一个错误,它返回 false。
在文件上传过程中发生的错误可以通过 getErrors() 方法检索。它以 UploadError 类的枚举值返回它们。以下错误类型: