我正在学习PHP,但我自己并没有找到正确的方法。我想总是需要Img(我在输入required
属性中检查这个)但我可以决定是否上传PDF。如果我不同时选择这两个脚本,则脚本不会继续。
我有这个:
// image select from form
$img = basename($_FILES['img']['name']);
$allow_img = array('jpg', 'png', 'jpeg');
$ext_img = explode('.', strtolower($_FILES['img']['name']));
$type_img= end($ext_img);
//pdf select from form
$pdf = basename($_FILES['pdf']['name']);
$allow_pdf = array('pdf');
$ext_pdf = explode('.', strtolower($_FILES['pdf']['name']));
$type_pdf= end($ext_pdf);
if ($img || $pdf) {
if(!in_array($type_img, $allow_img) || !in_array($type_pdf, $allow_pdf) ) {
echo "<p><a href='../admin.php'><img style='border:none;' src='../../img/arrow-left.png' /></a>Only jpg, png, jpeg and PDF.</p>";
}
}
答案 0 :(得分:1)
在这里,您可以通过超快的方式实现这一目标:
$filename = $_FILES['img']['name'];
$ext = pathinfo($filename, PATHINFO_EXTENSION);
// allowed extensions
$allowed = array('jpeg', 'png', 'jpeg', 'gif');
if (in_array($ext, $allowed)) {
echo "<p><a href='../admin.php'><img style='border:none;' src='../../img/arrow-left.png' /></a>Only jpg, png, jpeg and PDF.</p>";
}
就是这样:))
答案 1 :(得分:0)
你需要javascript。
在发送回复之前,您已检查文件类型。
答案 2 :(得分:0)
第二个basename()
调用很可能崩溃,因为没有上传pdf文件时没有$_FILES['pdf']
。但你甚至不在这里检查错误...看看http服务器错误日志文件,很可能你会看到错误。
说:如果发生意外情况,总是查看日志文件。并且在使用之前始终测试存在的变量。并且在调用某些可能无法返回预期功能的函数时总是进行错误检查。
答案 3 :(得分:0)
你可以使用pathinfo()
内置的php函数,
$File = $_FILES['image']['name'];
$Infos = pathinfo($File);
echo $extension = $info[extension];
echo "<pre>"; print_r($Infos); echo "</pre>";
$extension = strtolower( $extension);
if( $extension=='pdf'){
// do your stuff
}