2011-12-02 3 views
0

좋아, 나는 내 머리카락을 꺼내는 시점에 이른다. 나는 하루 종일이 일을 제대로하기 위해 노력해 왔습니다. 지금이 스크립트가 수행하는 작업은 페이지로 이동하는 파일을 업로드하려고 할 때 이미지가 표시되지 않는 경우입니다. 나는 그것이 왜 작동하지 않는지 전혀 모른다. 나는이 파일/이미지 업로드 일에 아직도 새로운 것이다. 나는 몇 가지 다른 방법을 시도했다. 여기에 upload.php로 코드 :파일 업로드 문제 PHP에서

 <?php 
    function dbConnect(){ 
    // Connect to the database 
    $hostname="localhost"; 
    $database="myDatabase"; 
    $mysql_login="myLogin"; 
    $mysql_password="myPassword"; 

    if(!($db=mysql_connect($hostname, $mysql_login, $mysql_password))){ 
     echo"error on connect"; 
    } 
    else{ 
     if(!(mysql_select_db($database,$db))){ 
      echo mysql_error(); 
      echo "<br />error on database connection. Check your settings."; 
     } 
     else{ 
        echo "This is the home page. I have successfully made a connection to my database and everything 
    is working as it should."; 
      } 
    } 
    $aryImages=array("image/jpeg","image/png"); 
    $aryDocs=array("application/msword","application/pdf","video/x-msvideo"); 
    $filename=filenameSafe($_FILES['upload']['name']); 
    $fileType=$_FILES["upload"]["type"]; 
    if (in_array($_FILES["upload"]["type"],$aryImages)){ 
     createThumb($fileType,$_FILES['upload']['tmp_name'],$filename,100,100); 
    } 
    elseif (in_array($_FILES["upload"]["type"],$aryDocs)){ 
     move_uploaded_file($_FILES['upload']['tmp_name'], 
    "/home/valerie2/public_html/elinkswap/imagefolder/".$filename); 
     $aryColumns=array("sessionID"=>$curSess,"fileName"=>$filename,"fileType"=>$fileType,"thumbFileName"=>$thumbFilename,"dateCreated"=>date('Y-m-d H:i:s')); 
     dbInsert($filename,$aryColumns,$_FILES["upload"]["type"]); 
    } 
    else{ 

     echo "File Uploaded"; 
     } 
    } 
    function createThumb($type,$tmpname,$filename,$new_w,$new_h){ 
     $thumbFilename="tmb-".$filename; 
     echo $type; 
     echo "<br>".$tmpname; 
     if (is_numeric(strpos($type,"jpeg"))){ 
      $src_img=imagecreatefromjpeg($tmpname); 
     } 
     if (is_numeric(strpos($type,"png"))){ 
      $src_img=imagecreatefrompng($tmpname); 
     } 
     $old_x=imageSX($src_img); 
     $old_y=imageSY($src_img); 
     if ($old_x > $old_y) { 
      $thumb_w=$new_w; 
      $thumb_h=$old_y*($new_h/$old_x); 
     } 
     if ($old_x < $old_y) { 
      $thumb_w=$old_x*($new_w/$old_y); 
      $thumb_h=$new_h; 
     } 
     if ($old_x == $old_y) { 
      $thumb_w=$new_w; 
      $thumb_h=$new_h; 
     } 
     $dst_img=imagecreatetruecolor($thumb_w,$thumb_h); 
     imagecopyresampled($dst_img,$src_img,0,0,0,0,$thumb_w,$thumb_h,$old_x,$old_y); 
     if (is_numeric(strpos($type,"jpeg"))){ 
      imagejpeg($dst_img,"/home/valerie2/public_html/elinkswap/upload/".$thumbFilename); 
      imagejpeg($src_img,"/home/valerie2/public_html/elinkswap/upload/".$filename); 
     } 
     if (is_numeric(strpos($type,"png"))){ 
      imagepng($dst_img,"/home/valerie2/public_html/elinkswap/upload/".$thumbFilename); 
      imagepng($src_img,"/home/valerie2/public_html/elinkswap/upload/".$filename); 
     } 
     imagedestroy($dst_img); 
     imagedestroy($src_img); 
     dbInsert($filename,$thumbFilename,$type); 
    } 
    function filenameSafe($filename) { 
     $temp = $filename; 
     // Lower case 
     $temp = strtolower($temp); 
     // Replace spaces with a ’_’ 
     $temp = str_replace(" ", "_", $temp); 
     // Loop through string 
     $result = ""; 
     for ($i=0; $i<strlen($temp); $i++) { 
      if (preg_match('([0-9]|[a-z]|_|.)', $temp[$i])) { 
       $result = $result.$temp[$i]; 
      } 
     } 
     dbConnect(); 
     $SQL="SELECT fileID FROM upload WHERE fileName='".$result."'"; 
     //echo $SQL; 
     $rs=mysql_query($SQL); 
     echo mysql_num_rows($rs); 
     if(mysql_num_rows($rs)!=0){ 
      $extension=strrchr($result,'.'); 
      $result=str_replace($extension,time(),$result); 
      $result=$result.$extension; 
     } 
     return $result; 
    } 

    function dbInsert($filename,$thumbFilename,$type){ 
     dbConnect(); 
     $SQL="INSERT Into upload (fileName,thumbFileName,fileType) values('".$filename."','".$thumbFilename."','".$type."')"; 
     //echo $SQL; 
     mysql_query($SQL); 
    } 
    ?> 

그리고 이것은 내 index.php에 코드입니다 :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 
<head> 
    <title>File Upload</title> 
<link href="styles.css" type="text/css" rel="stylesheet" /> 
</head> 
<body> 


<form enctype="multipart/form-data" action="upload.php" method="post"> 

Select File: <input type="file" name="upload"> 
<input type="hidden" name="MAX_FILE_SIZE" value="1000000"/> 
<input name="Submit" type="submit" value="Upload File"> 

</form> 
</html> 

이 두 파일은 폴더라는 업로드와 폴더 이름 imagefolder 내부에 있습니다. 나는 많은 것들을 파일/이미지와 많은 비디오에서 읽었지 만, 나는 왜 그림이 나타나지 않는지 이해하지 못한다. 나는 다른 방법을 시도해 보았다.하지만 계속해서 파일 유형을 알려주고있다.

+0

오류 메시지 란 무엇입니까? – Sedz

+0

오류 메시지가 없지만 업로드하려고하는 사진이 없습니다. 페이지가 흰색입니다. – sn1984

+0

운영 체제 란 무엇입니까? – Sedz

답변

1

upload.php는 많은 기능을 정의하지만 실제로 어딘가에 호출됩니까? 어떤 사람들은 서로를 부르지만, 그들 중 누구도 "항상 실행 된"코드에서 불려지지는 않습니다. 이 PHP 파일을 실행할 때 모든 경우에 실행되는 코드를 추가해야합니다. 당신의 dbInsert 기능 후 : dbConnect 호출하는 적절한 기능 정말 경우

function dbInsert($filename,$thumbFilename,$type){ 
    dbConnect(); 
    $SQL="INSERT Into upload (fileName,thumbFileName,fileType) values('".$filename."','".$thumbFilename."','".$type."')"; 
    //echo $SQL; 
    mysql_query($SQL); 
} 
dbConnect(); 

그러나

은 피상적 눈에서 정말 결정 could't - 당신의 기능은 조금 무작위로 상호 보인다는; 왜 dbConnectcreateThumb이라고 부르며, createThumbdbInsert으로 전화를 걸면 다시 dbConnect이 호출됩니까? 그러면 무한 재귀 루프가 생성됩니다.

내가 원했던 경우 원하는 동작을 테스트하기위한 기능이 없어도 시작할 수 있습니다. 나중에 기능에 대한 기능을 추출 할 수 있습니다.

0

많은 기능이있는 것처럼 보이지만 결코 호출되지 않으므로 아무 것도 발생하지 않습니다.

0

확인 폴더의 권한과 코드를 단순화하고 우리가 당신을 도울 수있는 그 다음 중지 않는 결정 후 디버그하기 위해 각 기능에 뭔가를 에코하려고 더

그러나 권한 문제

을 그에게 가장 가능성
+0

폴더 권한을 부여했습니다. – sn1984

+0

각 fcn 디버깅 시작 – Sedz