2011-12-02 7 views
0

私は私の髪を引き出すのポイントです。私はこのことが正当なものか何もないようにするために一日中努力してきました。今、このスクリプトがやっていることは、ページに行くファイルをアップロードするときに、画像がないときです。私はそれがなぜ正しく働いているのかわからない。私はこのファイル/画像アップロードの事でまだ新しいです。私はいくつかの方法と何も試していません。ここでupload.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の内側にあります。私はファイル/イメージと非常に多くのビデオで多くのことを読んだことがありますが、私はまだ画像が表示されない理由を理解していません。私は別の方法を試みましたが、それは私にinvaildファイルタイプを教え続けました。

+0

エラーmsgとは何ですか? – Sedz

+0

エラーメッセージはありませんが、アップロードしようとしている画像がありません。ページは白です。 – sn1984

+0

ur OSとは何ですか? – Sedz

答えて

1

あなたのupload.phpは多くの機能を定義していますが、実際にはどこかで呼び出されていますか?ある人はお互いを呼びかけていますが、「常に実行された」コードからは呼び出されていないようです。このPHPファイルを実行する際には、あらゆる場合に実行されるいくつかのコードを追加する必要があります。あなたのDBインサート機能の後:

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

しかし、私はdbConnectが実際に呼び出すための適切な機能であれば、実際に決定could'tチラッと見から - あなたの関数は、ビットがランダムに相互接続されたように見えます。 dbConnectcreateThumbとなります。createThumbdbInsertとなっていますが、もう一度dbConnectと呼びますか?これは、無限の再帰ループを作成します。

私があなただったら、希望の動作をテストするための機能がなくてもまず始めます。後でいつでも関数に関数を抽出することができます。

0

多くの機能があるようですが、呼び出されることはないので、何も起こりません。

0

フォルダのパーミッションをチェックして、あなたのコードを簡素化し、デバッグするために、各機能で何かをエコーし​​ようとすると、次にどこそれは、我々はあなたにもっと

しかし、最も可能性の高いそのアクセス許可の問題

を助けることができます停止しないかを決定
+0

私はそのフォルダに許可を与えました。 – sn1984

+0

各fcnのデバッグを開始する – Sedz

関連する問題