2016-07-18 3 views
0

내 사용자가 자신의 계정 (내 MySQL 데이터베이스)에 이미지를 업로드 할 수있게하려고합니다. 그러나 인코딩하고 업로드하려고하면 파일이 업로드되지 않고 비어있는 것 같습니다. PHP 설정에서 최대 업로드 크기 등을 확인했습니다. 미리 감사드립니다 !!내 이미지 파일이 PHP로 업로드되지 않는 이유는 무엇입니까?

$data = ""; 
if(isset($_FILES["up"])) { 
    $data = file_get_contents($_FILES['up']['tmp_name']); 
    $data = base64_encode($data); 
    $data = $connection->real_escape_string($data); 
} else { 
    echo '<div style="position:absolute;height:100px;top:0px;left:0px; 
        border-top-right-radius:20px;border-top-left-radius:20px; 
        width:100%;background:white;z-index:100;" 
      > 
      <font style="color:#BB0000;font-size:2.2vw;">'.$_FILES['up']['error'].'</font> 
     </div>'; 
    die(''); 
} 

내 HTML은 다음과 같습니다 (그리고 양식을 제대로 제출)

<input type="file" accept=".jpg,.png,.jpeg" name="up" id="up"/> 
+0

파일을 저장하기 위해 어떤 끔찍한 방법. – e4c5

+0

제안 사항이 있으십니까? –

+1

예, 파일을 파일 시스템에 저장하고 데이터베이스에 이름을 저장하십시오. – e4c5

답변

0

제안 : 디렉토리에 이미지를 저장합니다.

왜 DB를 묻지 않습니까? DB를/쓰기

  1. 읽기는
  2. 당신의 DB 백업이

그래서, 여기 내 솔루션으로 소요되는 시간이 될 것 파일 시스템보다 항상 느립니다.

1 단계 : 형태

<form action="upload.php" method="post" enctype="multipart/form-data"> 
Select your profile picture: 
<input type="file" name="fileToUpload" id="fileToUpload"> 
<input type="Upload" value="Upload Image" name="submit"> 
</form> 

3 단계 작성 : 파일 업로드를 처리하는 파일이라고 upload.php로를 만듭니다 디렉토리 userPhotos

2 단계 만듭니다.

<?php 
$target_dir = "userPhotos/"; 
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]); 
$uploadOk = 1; 
$newfilename = ;//assign unique user ID 
$imageFileType = pathinfo($target_file,PATHINFO_EXTENSION); 
// Check if image file is a actual image or fake image 
if(isset($_POST["submit"])) { 
$check = getimagesize($_FILES["fileToUpload"]["tmp_name"]); 
if($check !== false) { 
    echo "File is an image - " . $check["mime"] . "."; 
    if (move_uploaded_file($_FILES["fileToUpload"][$newfilename.$imageFileType], $target_file)) { 
     echo "The file ". basename($_FILES["fileToUpload"]["name"]). " has been uploaded.";$uploadOk = 1; 
} 
} else { 
    echo "File is not an image."; 
    $uploadOk = 0; 
} 
} 
if($uploadOK==1){ 
store the path of image in DB as "/userPhotos/".$newfilename 
echo "uploaded photo : <img src='userphotos/".$newfilename."'"> 
} 
//to display the image fetch the path using user ID as put it in src of img tag. 
?> 

누구에게 더 나은 해결책이 있는지 알고 싶습니다. 고마워, 행운을 빌어.

+0

알겠습니다. 나는 이미 그 중 대부분을 가지고 있지만, 파일 유형 = "제출"버튼을 제출해야합니까? 이미지가 가입 양식의 일부가 될 수 있기를 바랍니다. –

0

PHP 코드

$data = ""; 
if(isset($_FILES["up"])) { 
    $data = file_get_contents($_FILES['up']['tmp_name']); 
    $data = base64_encode($data); 
    $data = $connection->real_escape_string($data); 
} else { 
    echo '<div style="position:absolute;height:100px;top:0px;left:0px; 
        border-top-right-radius:20px;border-top-left-radius:20px; 
        width:100%;background:white;z-index:100;" 
      > 
      <font style="color:#BB0000;font-size:2.2vw;">'.$_FILES['up']['error'].'</font> 
     </div>'; 
    die(''); 
} 

HTML 코드

<form method="POST" enctype="multipart/form-data"> 
<input type="file" accept=".jpg,.png,.jpeg" name="up" id="up"/> 
</form> 
+0

어떤 차이가 보이지 않습니까? 나는 지금 enctype을 포함했습니다 –

+0

"base64_encode()"대신 move_uploaded_file() 함수를 사용할 수 있습니다 –

+0

move_uploaded_file()으로 전체 코드를 증명할 수 있습니까? –