2012-05-03 2 views
0

사진을 업로드하여 데이터베이스에 저장하려고합니다. 문제는 HTML로 그다지 훌륭하지 않으며, 내가 좋아하는 양식을 얻고 편집해야하는 곳을 생각하기에 태그를 복사/붙여 넣기 만했습니다. 나는 그것이 사용하고있는 html 태그와 관련이 있다는 것을 확신한다. 왜냐하면 그 자체로는 잘 작동하기 때문이다. 그러나 복사, 붙여 넣기 할 때, 나는 그것이 내 등록 양식에 있어야한다고 생각한다. 형식 및 크기 규칙 검사는 항상 false를 반환합니다. 작업 양식, 등록 양식 페이지에 붙여 넣을 양식/게시/제출 버튼 콤보와 관련이 있어야합니다. 그것은 과거 검사를 얻을 수파일 업로드가 작동하지 않습니다 양식 태그 PHP MongoDB

<html> 
<body> 
Please enter your details below: 
<br /> 
<form name = "Details" method = "post"> 
<br /> 
Username: <input type = "text" name = "Username"> 
<br /> 
Password: <input type = "text" name = "Password"> 
<br /> 
Name:  <input type = "text" name = "Name"> 
<br /> 
Address: <input type = "text" name = "Line1"> 
<br /> 
Line 2:  <input type = "text" name = "Line2"> 
<br /> 
City:  <input type = "text" name = "City"> 
<br /> 
State:  <input type = "text" name = "State"> 
<br /> 
Zip:  <input type = "text" name = "Zip"> 
<br /> 
Now let's get those daily deals... 
<br /> 
Monday:  <input type = "text" name = "Monday"> 
<br /> 
Tuesday: <input type = "text" name = "Tuesday"> 
<br /> 
Wednesday: <input type = "text" name = "Wednesday"> 
<br /> 
Thursday: <input type = "text" name = "Thursday"> 
<br /> 
Friday:  <input type = "text" name = "Friday"> 
<br /> 
Saturday: <input type = "text" name = "Saturday"> 
<br /> 
Sunday:  <input type = "text" name = "Sunday"> 
<br /> 

<form method = "post" enctype = "multipart/form-data"> 
<label for = "file">Filename:</label> 
<input type = "file" name = "file" id = "file" /> 
<input type = "submit" name = "Submit" value ="Submit"> 
</form> 

<?php 
include_once("host_class.php"); 
include_once("event_class.php"); 

if (!empty($_POST['Username'])) 
{   
    $host = new Host();   
    $event = new Event(); 

    if ($host->i_exist($_POST['Username'])) 
    { 
     header("Location: http://www.drink-social.com/error.php?login=duplicate"); 
     exit(); 
    } 

    else if ((($_FILES["file"]["type"] == "image/gif")  
     || ($_FILES["file"]["type"] == "image/jpeg") 
     || ($_FILES["file"]["type"] == "image/pjpeg")) 
     && ($_FILES["file"]["size"] < 5000000)) 
    { 
     if ($_FILES["file"]["error"] > 0) 
      { 
       header("Location: http://www.drink-social.com/error.php?upload=".$_FILES["file"]["error"]); 
      exit(); 
      } 

     else if (file_exists("/var/www/pics/".$_FILES["file"]["name"])) 
     { 
      header("Location: http://www.drink-social.com/error.php?upload=exists"); 
      exit(); 
     } 

     move_uploaded_file($_FILES["file"]["tmp_name"], "/var/www/pics/".$_FILES["file"]["name"]); 
     $host->set_username($_POST['Username']); 
     $host->set_password($_POST['Password']); 
     $host->set_name($_POST['Name']);   
     $host->set_address($_POST['Line1'], $_POST['Line2'], $_POST['City'], 
        $_POST['State'], $_POST['Zip']); 
     $host->set_pic($_FILES['file']['name']); 

     $id = new MongoID($host->add_me()); 
     $host->build_me($id); 

     $host->set_mondayID($event->add_me($_POST['Monday'], $host->get_id())); 
     $host->set_tuesdayID($event->add_me($_POST['Tuesday'], $host->get_id())); 
     $host->set_wednesdayID($event->add_me($_POST['Wednesday'], $host->get_id())); 
     $host->set_thursdayID($event->add_me($_POST['Thursday'], $host->get_id())); 
     $host->set_fridayID($event->add_me($_POST['Friday'], $host->get_id())); 
     $host->set_saturdayID($event->add_me($_POST['Saturday'], $host->get_id())); 
     $host->set_sundayID($event->add_me($_POST['Sunday'], $host->get_id())); 

     $host->update_me(); 
     header("Location: http://www.drink-social.com/member.php?ID=".$id); 
     exit(); 
    } 

    else 
    { 
     header("Location: http://www.drink-social.com/error?upload=empty"); 
     exit(); 
    } 

} 
?> 
</body> 
</html> 

: 같은

이 지금 내 작업 업로드 테스트 코드

<html> 
<body> 
<form method = "post" enctype = "multipart/form-data"> 
<label for = "file">Filename:</label> 
<input type = "file" name = "file" id = "file" /> 
<input type = "submit" name = "Submit" value ="Submit"> 
</form> 

<?php 
if (!empty($_FILES['file'])) 
{ 
    if ((($_FILES["file"]["type"] == "image/gif") 
     || ($_FILES["file"]["type"] == "image/jpeg") 
     || ($_FILES["file"]["type"] == "image/pjpeg")) 
     && ($_FILES["file"]["size"] < 5000000)) 
    { 
     if ($_FILES["file"]["error"] > 0) 
     { 
      header("Location: http://www.drink-social.com/error.php?upload=".$_FILES["file"]["error"]); 
      exit(); 
     } 

     else if (file_exists("/var/www/pics/".$_FILES["file"]["name"])) 
     { 
      header("Location: http://www.drink-social.com/error.php?upload=exists"); 
      exit(); 
     } 

     move_uploaded_file($_FILES["file"]["tmp_name"], "/var/www/pics/".$_FILES["file"]["name"]); 
    } 
} 
?> 
</body> 
</html> 

입니다,이, 내 등록 페이지, 나는 복사 후/함께 섹션을 붙여 무엇을 본다 게시물이 비어 있는지 확인하지만 파일이 있는지를 확인하면 false를 반환하고 오류 페이지로 이동하여 선택한 파일이 없다고 말합니다 ...? 나는 우둔 해요, 조언을 주시기 바랍니다 미리 감사드립니다, 그리고 너무 오래 미안 해요! 파일을 업로드하는 동안 나는이 코드를 사용하고

답변

1

내가 여기

if($_FILES['file']['name']){ 
    if($_FILES['file']['error']==0){ 
     $target = "/images/"; 
     $target_path = $target.time().getExtension($_FILES['file']['name']); 
     move_uploaded_file($_FILES['file']['tmp_name'], $target_path); 
    } 
} 

으로 파일을 수신 할 제출에 클릭에 이제

<input type="file" value="" name="file" /> 

같은 형태로 입력 필드가 오전 가정 해 보겠습니다 나는 현재 시간 기록을 가진 파일을 이름으로 저장 중임

를 사용하여 확장자를 얻는 중
function getExtension($str) { 
    $i = strrpos($str,"."); 
    if (!$i) { return ""; } 
    $l = strlen($str) - $i; 
    $ext = substr($str,$i+1,$l); 
    return $ext; 
} 

지금 내가 MongoDB에 대해 잘 모르지만, 그 이미지의 경로를 저장하는

$host->set_pic($target_path); 

으로 사용자 코드에서이되어야한다. 이 코드의 각 위치에 넣을 수있는 파일 유형 & 크기를 확인하기위한 조건은 나머지입니다. 감사합니다.

관련 문제