2017-06-08 180 views
0

这是我上传文件的php代码。该代码显示了变量初始化行中的udentified index的通知。此外,显示的输出是“无效的文件扩展名”,而我正在上传一个JPEG文件。上传图片文件时出现'无效的文件扩展名'错误

<?php 


    if (isset($_POST["submit"])) { 

     $name  = $_FILES['file']['name']; 
     $tmpName = $_FILES['file']['tmp_name']; 
     $error = $_FILES['file']['error']; 
     $size  = $_FILES['file']['size']; 
     $ext  = strtolower(pathinfo($name, PATHINFO_EXTENSION)); 

     switch ($error) { 
      case UPLOAD_ERR_OK: 
       $valid = true; 
       //validate file extensions 
       if (!in_array($ext, array('jpg','jpeg','png','gif'))) { 
        echo $ext; 
        $valid = false; 
        $response = 'Invalid file extension.'; 
       } 
       //validate file size 
       if ($size/1024/1024 > 2) { 
        $valid = false; 
        $response = 'File size is exceeding maximum allowed size.'; 
       } 
       //upload file 
       if ($valid) { 
        $targetPath = dirname(__FILE__) . DIRECTORY_SEPARATOR. 'uploads' . DIRECTORY_SEPARATOR. $name; 
        move_uploaded_file($tmpName,$targetPath); 
        header('Location: index.php') ; 
        exit; 
       } 
       break; 
      case UPLOAD_ERR_INI_SIZE: 
       $response = 'The uploaded file exceeds the upload_max_filesize directive in php.ini.'; 
       break; 
      case UPLOAD_ERR_FORM_SIZE: 
       $response = 'The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form.'; 
       break; 
      case UPLOAD_ERR_PARTIAL: 
       $response = 'The uploaded file was only partially uploaded.'; 
       break; 
      case UPLOAD_ERR_NO_FILE: 
       $response = 'No file was uploaded.'; 
       break; 
      case UPLOAD_ERR_NO_TMP_DIR: 
       $response = 'Missing a temporary folder. Introduced in PHP 4.3.10 and PHP 5.0.3.'; 
       break; 
      case UPLOAD_ERR_CANT_WRITE: 
       $response = 'Failed to write file to disk. Introduced in PHP 5.1.0.'; 
       break; 
      case UPLOAD_ERR_EXTENSION: 
       $response = 'File upload stopped by extension. Introduced in PHP 5.2.0.'; 
       break; 
      default: 
       $response = 'Unknown error'; 
      break; 
     } 

     echo $response; 
    } 
    ?> 

HTML文件如下:

<html> 
    <body> 
    <form method = "post" action = "upload.php"> 
     <input type="file" name="file"> 
     <input type="submit" value="Upload Image" name="submit"> 
    </form> 
    </body> 
</html> 
+0

检查你的'$ ext'包含发送文件? –

+0

当我尝试打印这些变量的值时,它不打印任何东西,@MayankPandeyz –

+0

尝试在表单标记中添加属性enctype =“multipart/form-data” –

回答

0

添加属性enctype="multipart/form-data"在表单标签与形式

+0

错误已解决,但文件未上传至上述目录@Daniyal –

+0

更改上传目录@ManyaAgarwal – Daniyal

+0

没有什么区别,路径存在。 –

相关问题