當我不想上傳頭像並保留默認的'avatar1.jpg'時,它不斷給我提供相同的錯誤消息。 「文件類型無效!」什麼可能是錯的? 當我上傳頭像時,它工作正常。使用php上傳默認頭像
此代碼是停留在functions.php的
public function uploadAvatar(){
$allowedExts = array("gif", "jpeg", "jpg", "png");
$temp = explode(".", $_FILES["avatar"]["name"]);
$extension = end($temp);
if ((($_FILES["avatar"]["type"] == "image/gif")
|| ($_FILES["avatar"]["type"] == "image/jpeg")
|| ($_FILES["avatar"]["type"] == "image/jpg")
|| ($_FILES["avatar"]["type"] == "image/pjpeg")
|| ($_FILES["avatar"]["type"] == "image/x-png")
|| ($_FILES["avatar"]["type"] == "image/png"))
&& ($_FILES["avatar"]["size"] < 1000000)
&& in_array($extension, $allowedExts)) {
if ($_FILES["avatar"]["error"] > 0) {
redirect('register.php', $_FILES["avatar"]["error"], 'error');
} else {
if (file_exists("images/avatars/" . $_FILES["avatar"]["name"])) {
redirect('register.php', 'File already exists', 'error');
} else {
move_uploaded_file($_FILES["avatar"]["tmp_name"],
"images/avatars/" . $_FILES["avatar"]["name"]);
return true;
}
}
}
else {
redirect('register.php', 'Invalid File Type!', 'error');
}
}
此代碼是獲取函數的功能, 「如果($用戶> uploadAvatar()){...}」 成立如果沒有上傳任何內容,則爲默
if(isset($_POST['register-input'])){
//Create Data Array
$data = array();
$data['name'] = $_POST['name'];
$data['email'] = $_POST['email'];
$data['username'] = $_POST['username'];
$data['password'] = md5($_POST['password']);
$data['password2'] = md5($_POST['password2']);
$data['about'] = $_POST['about'];
$data['last_activity'] = date("Y-m-d H:i:s");
//Required Fields
$field_array = array('name','email','username','password','password2');
if($validate->isRequired($field_array)){
if($validate->isValidEmail($data['email'])){
if($validate->passwordsMatch($data['password'],$data['password2'])){
//Upload Avatar Image
if($user->uploadAvatar()){
$data['avatar'] = $_FILES["avatar"]["name"];
} else{
$data['avatar'] = 'avatar1.jpg';
}
//Register User
if($user->register($data)){
redirect('index.php', 'You are registered and can now log in', 'success');
} else {
redirect('index.php', 'Something went wrong with registration', 'error');
}
} else {
redirect('register.php', 'Your passwords did not match', 'error');
}
} else {
redirect('register.php', 'Please use a valid email address', 'error');
}
} else {
redirect('register.php', 'Please fill in all required fields', 'error');
}
}
丹尼你說你想我的代碼啓動功能,並在沒有上傳它不會工作。用我的解決方案,腳本執行路徑是否輸入'$ data ['avatar'] ='avatar1.jpg''路徑?你會得到什麼錯誤? – BeetleJuice
我實際上得到這個錯誤,它在函數中。其他{ 重定向('register.php','無效文件類型!','錯誤'); } } – Danny
你把我的代碼塊放在函數的開頭嗎? (不是主要腳本的開始)。如果是這樣,當你沒有上傳任何文件時,當你在該函數的頂部執行'print_r($ _ FILES ['avatar'])'時顯示什麼? – BeetleJuice