1
<?php
if(isset($_FILES['menubg'])){
$errors= array();
$targetDir = $_SERVER['DOCUMENT_ROOT'].'/user/usermenu_background/'.($_SESSION['user_id']).'';
// Create target dir
if (!file_exists($targetDir)) {
@mkdir($targetDir);
}
$file_name = 'menubg.jpg';
// $file_name = $_FILES['menubg']['name'];
$file_size =$_FILES['menubg']['size'];
$file_tmp =$_FILES['menubg']['tmp_name'];
$file_type=$_FILES['menubg']['type'];
$file_ext=strtolower(end(explode('.',$_FILES['menubg']['name'])));
$extensions = array('jpg');
if(in_array($file_ext, $extensions) === false){
$errors[]='extension not allowed, please choose a JPG file.';
}
if($file_size > 2097152){
$errors[]='File size must be under 2 MB';
}
if(empty($errors)==true){
move_uploaded_file($file_tmp,'user/usermenu_background/'.($_SESSION['user_id']).'/'.$file_name);
echo "No errors ";
} else {
print_r($errors);
}
}
?>
出于某种原因,每次我救我的表格时,我得到一个错误信息( 阵列([0] =>不允许延期,请选择一个JPG文件。))不应该被打印,除非文件正在上传。为什么每次保存表单时都会打印此错误消息?
当您上传文件时,应检查文件以确保您正在上传.jpg文件。它被困在:if(isset($_FILES['menubg'])){}
。在我的表单上,人们并不总是要上传文件,它不应该告诉我一个空白文件有一个不允许的扩展名。
我改变了第一线,如果(is_uploaded_file($ _ FILES [ 'menubg'] [ 'tmp_name的值'])){和固定我写了一篇关于这个问题,不过我也如果我上传带有错误扩展名的文件,则不会再收到错误消息! – 2014-09-25 20:04:52
@JamesLyngaas你还能上传一个带有.jpg扩展名的文件吗? – 2014-09-25 20:06:50
是的,这是有效的。但是,如果我选择一个PNG文件,它会上传并将其命名为menubg.jpg。 – 2014-09-25 20:09:53