我有问题。
我有一个表格可以上传pdf文件。此字段不是必需的,如果它是空的,我不想输出错误。但如果它不是空的我不想检查文件扩展名是.pdf。
我该怎么做?
我的PHP代码是:
$pdf_dir = "pdf_datoteke/";
$pdf_file = $pdf_dir . basename($_FILES['news_link']['name']);
$pdf_type = pathinfo($pdf_file,PATHINFO_EXTENSION);
$pdf_allowed = array('pdf');
if (empty($_POST['news_link']) === false && in_array($pdf_type, $pdf_allowed) === false) {
$errors[] = '<h2">* To ni pdf datoteka!</h2><br>';
}
答案 0 :(得分:0)
$filename = your_filename;
$arr = explode(".", $filename);
$parts = count($arr);
$is_pdf = ($arr[$parts-1]=="pdf") ? true : false;
如果$is_pdf
为真,那么它是pdf,否则不是。
答案 1 :(得分:0)
如果enybody提出同样的问题我找到了解决方案。
我需要将此代码放入:
if (is_uploaded_file($_FILES['news_link']['tmp_name'])) {
$name = $_FILES['news_link']['name'];
$ext = end((explode('.', $name)));
if ($ext != 'pdf'){
$errors[] = '<h2>* This file format is not .pdf!</h2>';
}
}
对于图片,其中有一种格式出现了,我把这段代码:
if (is_uploaded_file($_FILES['news_picture']['tmp_name'])) {
$image_name = $_FILES['news_picture']['name'];
$image_size = $_FILES['news_picture']['size'];
$allowed_ext = array('jpg', 'jpeg', 'png', 'gif', 'mp4');
$image_ext = pathinfo($image_name, PATHINFO_EXTENSION);
$image_ext = strtolower($image_ext);
if (in_array($image_ext, $allowed_ext) === false) {
$errors[] = '<h2>* This image formati is not accepted</h2>';
}
if ($image_size > 33554432) {
$errors[] = '<h2>* This image is to big!</h2>';
}
}
我希望这对某人有帮助。