php - 具有相同名称属性的 2 个文件上传输入的表单
问题描述
我有一个带有 2 个具有相同名称属性的输入的表单:
<form enctype="multipart/form-data" method="POST">
<input type="file" name="file_upload" required="required" aria-required="true">
<input type="file" name="file_upload" required="required" aria-required="true">
</form>
在我只有一个上传文件输入之前,我使用 PHP 将该文件上传到文件temp
夹并将其附加到电子邮件中phpMailer
:
if (array_key_exists('file_upload', $_FILES)) {
$uploadfile = tempnam(sys_get_temp_dir(), hash('sha256', $_FILES['file_upload']['name']));
if (move_uploaded_file($_FILES['file_upload']['tmp_name'], $uploadfile)) {
$mail->addAttachment($uploadfile, $_FILES['file_upload']['name']);
} else{
echo 'Failed!';
exit;
}
}
如何对 2 个文件输入做同样的事情?
这两个文件都是必需的。
为其中一个使用不同的名称并重复相同的 PHP 代码会更好吗?
解决方案
在您的 HTML 中将它们重命名为 img1 和 img2(或者您可以更改此代码)。
$uploadStatus = 1;
$uploadedFile = '';
if (!empty($_FILES["img1"]["name"]))
{
$fileName = basename($_FILES["img1"]["name"]);
$filenamewithoutextension = strtolower(pathinfo($fileName, PATHINFO_FILENAME));
$fileType = strtolower(pathinfo($fileName, PATHINFO_EXTENSION));
$filename_to_store = $filenamewithoutextension. '_' .uniqid(). '.' .$fileType;
$allowTypes = array(
'jpg',
'png',
'jpeg'
);
if (in_array($fileType, $allowTypes))
{
if (move_uploaded_file($_FILES["img1"]["tmp_name"], $uploadDir.$filename_to_store))
{
$uploadedFile = $filename_to_store;
}
else
{
$uploadStatus = 0;
}
}
else
{
$uploadStatus = 0;
}
}
$uploadStatus1 = 1;
$uploadedFile1 = '';
if (!empty($_FILES["img2"]["name"]))
{
$fileName = basename($_FILES["img2"]["name"]);
$filenamewithoutextension = strtolower(pathinfo($fileName, PATHINFO_FILENAME));
$fileType = strtolower(pathinfo($fileName, PATHINFO_EXTENSION));
$filename_to_store = $filenamewithoutextension. '_' .uniqid(). '.' .$fileType;
$allowTypes = array(
'jpg',
'png',
'jpeg'
);
if (in_array($fileType, $allowTypes))
{
if (move_uploaded_file($_FILES["img2"]["tmp_name"], $uploadDir.$filename_to_store))
{
$uploadedFile1 = $filename_to_store;
}
else
{
$uploadStatus1 = 0;
}
}
else
{
$uploadStatus1 = 0;
}
}
if($uploadStatus==1 && $uploadStatus1==1)
{
//send mail
}
推荐阅读
- docusignapi - 如何为没有电子邮件和姓名的收件人获取嵌入式签名 URL
- python - Python Launcher:默认运行意外版本的 Python
- file-upload - MVC 5 文件上传
- python - Python Web Scraping:如何获取内部站点的 HTML
- python - Flask 中的用户身份验证 - 如何在函数中实现?
- java - JDA - 机器人听取其他机器人的反应
- python - 从 S3 存储桶中读取大量 CSV 文件
- ios - 使用委托在两个以上视图控制器之间传递数据
- python - 有什么方法可以正确合并熊猫中具有不同暗度的两个时间序列?
- c - C 意外标识符 - For 循环增量