2015-01-22 2 views
0

사용자가 업로드하고 싶은 파일이 두 개인 있습니다. 양식이 이렇게 보입니다.업로드 된 이미지 파일을 저장하는 데 문제가 있습니다.

<form action="send-image.php" method="POST" enctype="multipart/form-data"> 
    Upload image 1 
     <input type="file" name="FrontDesign"> 
    Upload image 2 
     <input type="file" name="BackDesign"> 
     <input type="submit" value="Submit images" > 
</form> 

는 정보가 보내는 PHP 파일은 다음과 같다 : 그러나

require 'includes/PHPMailer/PHPMailerAutoload.php'; 

$frontdesign = $_FILES['FrontDesign']; 
$backdesign = $_FILES['BackDesign']; 

$target_path = ""; 
$target_path2 = ""; 

if(isset($_POST['FrontDesign'])) { 

if (($_FILES["FrontDesign"]["size"] < 1200000000000)){ 
    if($_FILES["FrontDesign"]["type"] == "image/jpeg"){$ptype=".jpeg";} 
    elseif($_FILES["FrontDesign"]["type"] == "image/jpg"){$ptype=".jpg";} 
    elseif($_FILES["FrontDesign"]["type"] == "image/pjpeg"){$ptype=".pjpeg";} 
    elseif($_FILES["FrontDesign"]["type"] == "image/png"){$ptype=".png";} 

    $target_path = "Images/"; 
    $randf = rand(1000, 9999).rand(1000, 9999).rand(1000, 9999).rand(1000, 9999).rand(1000, 9999); 
    $target_path = $target_path . $randf . $ptype; 

    move_uploaded_file($_FILES['FrontDesign']['tmp_name'], $target_path); 
    // wrong file type 
    } else{echo $error =1; } 

} else { $target_path = 0; } 

if(isset($_POST['BackDesign'])) { 

    if (($_FILES["BackDesign"]["size"] < 1200000000000)){ 
     if($_FILES["BackDesign"]["type"] == "image/jpeg"){$ptype2=".jpeg";} 
     elseif($_FILES["BackDesign"]["type"] == "image/jpg"){$ptype2=".jpg";} 
     elseif($_FILES["BackDesign"]["type"] == "image/pjpeg"){$ptype2=".pjpeg";} 
     elseif($_FILES["BackDesign"]["type"] == "image/png"){$ptype2=".png";} 

     $target_path2 = "Images/"; 
     $randf2= rand(1000, 9999).rand(1000, 9999).rand(1000, 9999).rand(1000, 9999).rand(1000, 9999); 
     $target_path2 = $target_path2 . $randf2 . $ptype2; 

     move_uploaded_file($_FILES['BackDesign']['tmp_name'], $target_path2); 
     // wrong file type 
     } else {echo $error =1; } 

    } else { $target_path2 = 0; }  


echo "$target_path, $target_path2"; 

// PHPMailer 
$mail = new PHPMailer(); 

$mail->addAddress('[email protected]'); 
$mail->SetFrom = "[email protected]"; 
$mail->FromName = "Zach Cook"; 

$file_to_attach = $target_path; 
$file_to_attach2 = $target_path2; 

$mail->AddAttachment($file_to_attach); 
$mail->AddAttachment($file_to_attach2); 
$mail->isHTML(true); 

$mail->Subject = "Testing image send"; 
$mail->Body = "Does it work now?"; 

if(!$mail->send()) { 
    echo 'Message could not be sent.'; 
} 

, 나는 "0"밖으로 에코가 계속. 코드가 너무 크다는 것을 알지 못하더라도 코드가 테스트에 실패하는 것을 의미합니다. 실제로 파일이 너무 크지는 않습니다. 또한 파일이 새 파일 위치로 이동되지 않습니다.

여기에 어떤 오류가 있습니까? 감사.

답변

1

변경 if(isset($_POST['FrontDesign'])) ~ if(isset($_FILES['FrontDesign'])) 텍스트 입력이 아닌 파일이므로 변경하십시오.

+0

감사합니다. 그게 고정 :) –

관련 문제