【发布时间】:2022-01-29 06:00:50
【问题描述】:
我正在尝试将 pdf 文件上传到服务器,但由于某种原因,我尝试过的所有操作都不起作用。我已经更改了文件夹、文件的权限..(读取+写入)我还更改了 php.ini 中的最大文件大小除 pdf 之外所有其他文件都可以正常工作。有人可以帮我解决这个问题吗?提前谢谢你。
<?php
$target_dir = "uploads/";
$target_file = $target_dir . basename($_FILES["archivoSubir"]["name"]);
$uploadOk = 1;
$tipoFichero = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));
// Comprobar si el archivo actual es una imagen o no
if(isset($_POST["submit"])) {
$check = getimagesize($_FILES["archivoSubir"]["tmp_name"]);
if($check !== false) {
echo "El archivo es una imagen - " . $check["mime"] . ".";
$uploadOk = 1;
} else {
$uploadOk = 0;
}
}
// Limitar formato de archivos
if($tipoFichero != "jpg" && $tipoFichero != "png" && $tipoFichero != "jpeg"
&& $tipoFichero != "gif" && $tipoFichero != "application/pdf") {
echo 'Lo siento, solo archivos JPG, JPEG, PNG, GIF & PDF están permitidos.';
print_r($_FILES);
$uploadOk = 0;
}
// Limitar tamaño de fichero
if ($_FILES["archivoSubir"]["size"] > 5000000) {
echo 'El archivo que intentas subir es demasiado grande.';
$uploadOk = 0;
}
// Comprobamos si el archivo ya existe
if (file_exists($target_file)) {
echo 'El archivo ya existe.';
$uploadOk = 0;
}
// Comprobar si ha habido un error en la subida
if ($uploadOk == 0) {
echo 'El archivo no se ha podido subir.';
// Si todo está bien, subimos el archivo
} else {
if (move_uploaded_file($_FILES["archivoSubir"]["tmp_name"], $target_file)) {
echo 'El archivo '. htmlspecialchars( basename( $_FILES["archivoSubir"]["name"])). ' ha sido subido.';
header( "refresh:2;url=index.php" );
} else {
echo 'Ha habido un error al subir el archivo.';
}
}
?>
【问题讨论】:
-
抱歉,您不检查扩展名吗? ...因此,在这种情况下,扩展名将是
$tipoFichero != "pdf")而不是application/pdf.当您尝试上传 pdf 时会发生什么。$tipoFichero甚至返回?调试 101 :) -
你是对的。但即便如此,文件也不会上传到服务器。它说文件无法上传(echo 'Ha habido un error al subir el archivo.'),当我执行 print_r ($files) 错误[0] 时出现,但又一次,错误 [0] 并不意味着一切都好吗?
-
上传后的 html 看起来如何。您是否在输入中使用了
accept属性? -
-
我从没听说过accept属性,让我快速查一下