2015-05-07 32 views
-1

我在与流浪汉(hashicorp/precise32)的archlinux我从w3c学校学习php,我在页面上传文件,在这里我的脚本不能上传没有什么唯一的东西返回我是无效文件永远(.JPG巴纽ECC ..)这里是代码:OOP php文件上传无效的文件类型

class User 
{ 
    //init Db Variable 
    private $db; 

    /* 
    * Constuctor 
    */ 
    public function __construct() 
    { 
     $this->db = new Database; 
    } 

    /* 
    * Upload User Avatar 
    */ 
    public function uploadAvatar() 
    { 
     $allowedExts = array("gif", "GIF", "jpeg", "JPEG", "jpg", "JPG", "png", "PNG"); 
     $extension = end(explode(".", $_FILES["avatar"]["name"])); 

     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"] < 20000000) && in_array($extension, $allowedExts)) { 
      if ($_FILES["avatar"]["error"] > 0) { 
       redirect('register.php', $_FILES["avatar"]["error"], 'error'); 
      } else { 
       if (file_exists('img/avatars/' . $_FILES["avatar"]["name"])) { 
        redirect('register.php', 'File already exists', 'error'); 
       } else { 
        move_uploaded_file($_FILES["avatar"]["tmp_name"], 
         "img/avatars/" . $_FILES["avatar"]["name"]); 

        return true; 
       } 
      } 
     } else { 
      redirect('register.php', 'Invalid File Type!', 'error'); 
     } 

    } 
} 

HTML FOM Bootstap注册

<form ectype="multipart/form-data" method="POST" action="register.php"> 
     <div class="form-group"> 
      <input type="file" name="avatar" class="btn btn-sm btn-primary" /> 
     </div> 
    </form> 

register.php

<?php 
// Create User Object 
$user = new User; 

if (isset($_POST['register'])) { 
//Create Data away 
$data = array(); 
    //Upload Avatar Image 
     if ($user->uploadAvatar()) { 
      return $data['avatar'] = $_FILES["avatar"]["name"]; 
     } else { 
      $data['avatar'] = 'gavatarm.png'; 
    } 
    } 
+0

通过打印您的'$ _FILES'来检查您是否可以作为扩展名。 –

+0

我有一个空数组() – cooljl31

+0

尝试用'

'作为下面的答案。 –

回答

0

简单!修复您的拼写错误,使用enctype而不是ectype

<form enctype="multipart/form-data" method="POST" action="register.php"> 
+0

谢谢我的朋友,这是错误的 – cooljl31

+0

乐于帮助,并热烈欢迎Stack Overflow。如果此答案解决了您的问题,请将其标记为已接受:) – rajukoyilandy