0
사용자가 내가 만든 웹 사이트의 프로필 사진을 변경할 수 있도록하는 스크립트를 만들려고합니다. 여기false를 반환하는 파일 업로드 스크립트
<form action="upload_prof_pic.php" method="POST" enctype="multipart/form-data">
<input type="file" class="btn btn-default" name="file" id="file" /><br /><br />
<input type="submit" class="btn btn-default" value="Upload Profile Picture" />
</form>
upload_prof_pic.php의 PHP 코드입니다 : 그것은 항상 실행
<?php
session_start();
require("includes/connect.php");
$results = $db->query("SELECT * FROM users WHERE username='".$_SESSION["logged_in"]."'");
$rows = $results->fetch();
$allowedExts = array("gif", "jpeg", "jpg", "png");
$temp = explode(".", $_FILES["file"]["name"]);
$extension = end($temp);
if (
(
($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/jpg")
|| ($_FILES["file"]["type"] == "image/pjpeg")
|| ($_FILES["file"]["type"] == "image/x-png")
|| ($_FILES["file"]["type"] == "image/png")
)
&& ($_FILES["file"]["size"] < 20000)
&& in_array($extension, $allowedExts)
) {
if ($_FILES["file"]["error"] > 0) {
//error: uploading
header("Location: account.php?err=upload");
} else {
//success
move_uploaded_file($_FILES["file"]["tmp_name"],
"prof_pic/users/".$rows["username"]."/" . $_FILES["file"]["name"]);
$db->query("UPDATE users SET prof_pic='".$_FILES['file']['name']."' WHERE username='".$_SESSION["logged_in"]."'");
header("Location: account.php");
}
} else {
//error: invalid file
header("Location: account.php?err=invalid");
}
?>
'// 오류 : 잘못된 파일'스크립트의 일부는 여기에 양식에 대한 HTML 코드입니다. 누구든지 도와 줄 수 있습니까? 그것은 한 번 일한 다음 '// success'부분에서 뭔가를 바 꾸었습니다. 이것은 아무런 효과가 없었어야했지만 분명히 그랬습니다.
는 단순히 검사 중 하나가 실패 넣어. 왜'if' 문 앞에서'var_dump ($ _ FILES [ 'file'] [ 'type'], $ _FILES [ 'file'] [ 'size'], $ extension); exit;' – Phil
또는 그냥'print_r ($ _ FILES);'전체를 많이 얻으십시오 –
@Phil 고맙습니다! 내 사이즈를 너무 낮게 책정 했어. 나는 그것을 더 높게 설정하고 작동한다. –