2012-04-23 17 views
2

ありがとうございます。PHP画像アップローダがCapital JPG拡張機能と連携していません

私は作成したPHP画像アップローダーを持っていますが、うまくいきます。しかし、拡張子.JPGの画像をアップロードしようとしましたが動作しませんでした。私は大文字のJPGを意味し、小文字のJPGは意味しません。 .png、.jpg、.gifはすべて正常に動作し、アップロードされます。サムネイルは作成され、作成されません。それは何らかの理由で働いていない首都.JPGです。以下の私のコードを見てください。それは別のMIMEタイプですか?

(セキュリティ上の理由から削除した)クエリは問題なく動作します。情報は保存されます。大文字の.JPG拡張のために起こっていない正しいフォルダへのファイルとサムネイルの移動です。どのような助けが素晴らしいだろう、私はいくつかの研究を行い、ApacheをタイプJPGを追加しようとしたが動作しませんでした。

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

    $getcatid = mysql_query('"query here"'); 
    $rescatid = mysql_fetch_assoc($getcatid); 
    $catid = $rescatid['catid']; 

    if ((($_FILES['file']['type'] == "image/png") || 
     ($_FILES['file']['type'] == "image/jpeg") || 
     ($_FILES['file']['type'] == "image/pjpeg")) && ($_FILES['file']['size'] < 2097152)) 
    { 

     if (file_exists("location here".time().'_'.$_FILES["file"]["name"])) 
      { 
       echo '<div class="error">'.$_FILES["file"]["name"].' already exists</div>'; 

      } 
     else 
      { 

        $filename = time().'_'.$_FILES['file']['name']; 
        $source = $_FILES['file']['tmp_name']; 
        $target = 'location here'.$filename; 

        move_uploaded_file($source, $target); 

        createThumbnail($filename); 

       $date = time(); 
       $store = '"query here"';'; 

       mysql_query ($store); 

       echo '<div class="success">Image added</div>'; 

      } 
    } 

    else 
    { 
     echo '<div class="error">Invalid file, only jpg, jpeg, or png file types allowed</div>'; 
    } 

} 

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

    $getcatid = mysql_query('"query here"'); 
    $rescatid = mysql_fetch_assoc($getcatid); 
    $catid = $rescatid['catid']; 


    for($i=0;$i< count($_FILES['multifile']['type']);$i++) 
    { 

     if ((($_FILES['multifile']['type'][$i] == "image/png") || 
     ($_FILES['multifile']['type'][$i] == "image/jpeg") || 
     ($_FILES['multifile']['type'][$i] == "image/pjpeg")) && 
     ($_FILES['multifile']['size'][$i] < 2097152)) 
     { 

      $filename = time().'_'.$_FILES['multifile']['name'][$i]; 
      $source = $_FILES['multifile']['tmp_name']; 
      $target = 'location here'.$filename; 

      if(move_uploaded_file ($_FILES['multifile']['tmp_name'][$i],$target)) 
      { 
       createThumbnail($filename); 

       $date = time(); 
       $store = '"query here"';'; 

       mysql_query ($store); 

       echo '<div class="success">Image: '.$filename.' added, view individual album to edit image descriptions</div>'; 
      } 
      else 
      { 
      echo '<div class="error">Invalid file'.$filename.', only jpg, jpeg, or png file types allowed</div>'; 
      }   
     } 
    } 
} 

サムネイル機能、それは場合に役立ちます:あなたのサムネイルコードから

function createThumbnail($filename) { 
$final_width_of_image = 160; 
$path_to_image_directory = 'path here'; 
$path_to_thumbs_directory = 'path here'; 

if(preg_match('/[.](jpg)$/', $filename)) { 
    $im = imagecreatefromjpeg($path_to_image_directory . $filename); 
} else if (preg_match('/[.](gif)$/', $filename)) { 
    $im = imagecreatefromgif($path_to_image_directory . $filename); 
} else if (preg_match('/[.](png)$/', $filename)) { 
    $im = imagecreatefrompng($path_to_image_directory . $filename); 
} 

$ox = imagesx($im); 
$oy = imagesy($im); 

$nx = $final_width_of_image; 
$ny = floor($oy * ($final_width_of_image/$ox)); 

$nm = imagecreatetruecolor($nx, $ny); 

imagecopyresized($nm, $im, 0,0,0,0,$nx,$ny,$ox,$oy); 

if(!file_exists($path_to_thumbs_directory)) { 
    if(!mkdir($path_to_thumbs_directory)) { 
     die("There was a problem. Please try again!"); 
    } 
    } 

imagejpeg($nm, $path_to_thumbs_directory . $filename, 100); 

} 
+0

あなたがしようとしていると死ぬ:あなたは大文字または小文字と一致する場合は、大文字と無神経のため/iフラグを追加することができますか? – helloandre

+0

はい、.JPGイメージをアップロードするときのファイルタイプのエコーがあります:image/jpeg –

+0

作成するサムネイル機能を投稿できますか?サムネイルの作成と移動以外のすべてがうまくいけば、問題はそこにあるはずです。 – grifos

答えて

1

if(preg_match('/[.](jpg)$/', $filename)) 

のみ小文字の 'JPG' と一致します。 INGの ')(mimeタイプをエコー

if(preg_match('/[.](jpg)$/i', $filename)) 
+0

ありがとうございます、それが動作しない場合は、私はあなたにお知らせします。 –

+0

それは、百万人のおかげです。 –

関連する問題