嗨,我有一个上传 .PDF 文件的表单。问题是,有时,如果它检测到 PDF 和其他具有相同结尾的文件,它会告诉我它们不是那种类型。我能做什么?我在这里留下我的代码摘录
<form action="upload_book_prueba.php" method="post" class="regisform" enctype="multipart/form-data">
<label>Subir el ebook </label>
<input type="file" name="ebook" />
<input type="submit" name="enviar" value="Upload">
</form>
<?php
if ($_SERVER['REQUEST_METHOD'] == "POST"){
extract($_POST);
$ebook=$_FILES['ebook']['tmp_name'];
if($_FILES['ebook']['type']=="application/pdf") {
$ruta_ebook="ebook/".$nombre_ebook.".pdf";
if(copy($ebook,$ruta_ebook)){
echo "Entra aqui";
}else{
echo "No entro";
}
}
}
注意:$ebook_name 对应于对 ebooks 表的最大 id 的查询,并将该数字加 1。
不要使用
$_FILES['ebook']['type'] == "application/pdf"
以下两个原因:application/octet-stream
)。相反,您应该使用
mime_content_type()
并允许您的服务器通过使用服务器的幻数 (magic.mime
) 解析上传文件的内容来检测类型。示例
mime_content_type()
:示例
finfo::file()
:增加接收文件的大小
理想情况下,修改文件
php.ini
并将upload_max_filesize
y设置post_max_size
为更大的值。例如,要使用notation
shorthand
配置 32 MiB ,我们将输入:另一种选择是创建一个包含
.htaccess
以下内容的文件(如果您使用 apache 并且启用了它的使用):