【发布时间】:2021-12-12 10:58:16
【问题描述】:
您好,我在使用 php 上传两个文件时遇到问题。 我有这个带有两个文件字段的 html 输入表单
<form class="form-group" method="post" enctype="multipart/form-data">
<input type="file" accept=".jpg, .jpeg, .png" id="img" name="displaypic" required/>
<input type="file" accept=".pptx" name="presentation" required>
<button name="submit>Submit</submit>
</form>
这是我的 php 代码。这里我从表单中获取文件数据,但只上传了第一个文件,第二个文件没有。
<?php
if(isset($_POST['submit'])){
$file = $_FILES['displaypic'];
$fileName = $_FILES['displaypic']['name'];
$tempName = $_FILES['displaypic']['tmp_name'];
$size = $_FILES['displaypic']['size'];
$error = $_FILES['displaypic']['error'];
$format = $_FILES['displaypic']['type'];
$fileExt = explode('.', $fileName);
$fileActualExt = strtolower(end($fileExt));
$allowed = array('jpg', 'jpeg','png');
if(in_array($fileActualExt, $allowed)) {
if ($error === 0) {
if ($size<2e6) {
$newname = $tid.".".$fileActualExt;
$location = 'displays/'.$newname;
move_uploaded_file($tempName,$location);
}}}
同样,当我为文件 2 编写相同的代码时,它也不起作用。只上传第一个文件,不上传第二个文件。
$file_ppt = $_FILES['presentation'];
$fileName = $_FILES['presentation']['name'];
$tempName = $_FILES['presentation']['tmp_name'];
$size = $_FILES['presentation']['size'];
$error = $_FILES['presentation']['error'];
$format = $_FILES['presentation']['type'];
$fileExt = explode('.', $fileName);
$fileActualExt = strtolower(end($fileExt));
$allowed = array('pptx');
if(in_array($fileActualExt, $allowed)) {
if ($error === 0) {
if ($size<10e6) {
$newname = $tid.".".$fileActualExt;
$location = 'presentations/'.$newname;
move_uploaded_file($tempName,$location);
}}}
}
?>
【问题讨论】:
-
您可以尝试为两个字段使用相同的名称,例如
xfiles[]或其他任何名称 -
请检查您的文件扩展名“pptx”是否有第二个文件。还要检查 php.ini 中的文件大小和允许的大小
-
您只检查没有错误,但如果有错误,您永远不会做/记录任何事情,因此请检查
$error包含的内容。
标签: php forms file-upload crud