2017-01-30 4 views
0

phpで画像ファイルをアップロードして名前を変更しようとしましたが、ファイルを自分が望むフォルダに移動しませんでした。コード?PHPを使ってファイルを特定のフォルダにアップロードするには

 $filename = $_POST["avatar"]; 
    $expl = explode('.', $filename); 
    $file_basename = $user; // give new name 
    $file_ext = $expl[1]; // get file extention 
    $filesize = $_FILES["avatar"]["size"]; 
    $allowed_file_types = array('gif', 'jpg', 'pjpg', 'png'); 
    $target_dir = "images/avatars/"; 
    $newfilename = $file_basename . '.' . $file_ext; 
    $target_file = $target_dir . $newfilename; 

    if (in_array($file_ext, $allowed_file_types) && ($filesize < 2000000000)) { 
     if (file_exists($target_dir . $newfilename)) { 
      echo "You have already uploaded this file."; 
     } else { 
      move_uploaded_file($_FILES['avatar']['tmp_name'], $target_dir); 
      if (!move_uploaded_file($_FILES['avatar']['tmp_name'], $target_file)) { 
       echo "There was an error uploading the file, please try again!"; 
      } else { 
       $avaq = "UPDATE portfoliotext SET avatar = '$newfilename'"; 
       $resava = mysqli_query($conn, $avaq); 
       echo "File uploaded successfully."; 
      } 
     } 
    } elseif ($filesize > 2000000000) { 
     echo "The file you are trying to upload is too large."; 
    } else { 
     echo "Only these file typs are allowed for upload: " . implode(', ', $allowed_file_types); 
    } 
} else { 
    echo "Invalid file"; 
} 
+1

1:あなたは属性セット 'のenctype = "multipart/form-data" を'持って確認してください。 2:ディレクトリの所有権とアクセス許可を確認する(** ** 777でない)2:ファイル拡張子の検証はほとんど無意味で、スクリプトは* my.lovely.horse.jpg * – CD001

+0

のような画像を拒否する – scoopzilla

答えて

0

余分な閉じ括弧と余分なelse句でいくつかのエラーが発生しました。

多分これを試してみてください。

$filename = $_POST["avatar"]; 
$expl = explode('.', $filename); 
$file_basename = $user; // give new name 
$file_ext = $expl[1]; // get file extention 
$filesize = $_FILES["avatar"]["size"]; 
$allowed_file_types = array('gif', 'jpg', 'pjpg', 'png'); 
$target_dir = "images/avatars/"; 
$newfilename = $file_basename . '.' . $file_ext; 
$target_file = $target_dir . $newfilename; 

if (in_array($file_ext, $allowed_file_types) && ($filesize < 2000000000)) { 
    if (file_exists($target_dir . $newfilename)) { 
     echo "You have already uploaded this file."; 
    } else { 
     move_uploaded_file($_FILES['avatar']['tmp_name'], $target_dir); 
     if (!move_uploaded_file($_FILES['avatar']['tmp_name'], $target_file)) { 
      echo "There was an error uploading the file, please try again!"; 
     } else { 
      $avaq = "UPDATE portfoliotext SET avatar = '$newfilename'"; 
      $resava = mysqli_query($conn, $avaq); 
      echo "File uploaded successfully."; 
     } 
    } 
} elseif ($filesize > 2000000000) { 
    echo "The file you are trying to upload is too large."; 
} else { 
    echo "Only these file typs are allowed for upload: " . implode(', ', $allowed_file_types); 
} 
関連する問題