2011-12-06 17 views
0

私は小規模な更新プロファイルのPICフォームを実装しようとしています。ここでアップロード中の画像がPHPバックエンドで失敗する

echo $_FILES['new_user_picture']['size']." "; 
echo $_FILES['new_user_picture']['tmp_name']." "; 
echo $_FILES['new_user_picture']['name']." "; 
echo $_FILES['new_user_picture']['error']." "; 
echo $_FILES['new_user_picture']['type']." "; 
$picture_uploaded = $_FILES["new_user_picture"]["tmp_name"]; 
if(is_uploaded_file($picture_uploaded)) { 
    $imagesize = getimagesize($picture_uploaded); 
    switch($imagesize[2]) { 
     case IMAGETYPE_PNG: 
       $extension = '.png'; 
       echo "<script>console.log('Reached here!!')</script>"; 
       try { 
        $image_original = imagecreatefrompng($picture_uploaded); 
        if (!$image_original) 
         echo '<script>console.log("not image original")</script>'; 
       } catch(Exception $e) { 
        echo "<script>console.log('Error!!')</script>"; 
       } 
       break; 
     case IMAGETYPE_JPEG: .... 
     ... 
    } 
} 

が、私は多くの画像の種類のようなコードを持っている:

<form method="post" action="<?php echo $filename;?>" name="change_picture_form" id="change_picture_form" enctype="multipart/form-data"> 
    <input type="hidden" name="action" value="change_picture" /> 
    <input type="file" name="new_user_picture"> 
    <input type="submit" class="submitButton" value="Save Changes"/> 
</form> 

対象のPHPファイルには、次のコードを持っています。私はこのコードを、PNG画像をアップロードしようと試みてテストしました。最初の5つのecho文は、サイズ、エラー値ゼロ、名前、タイプ、一時名​​のような予期した結果を表示します。

「ここにアクセス!」私のコンソールに。しかし、 imagecreatefrompngは、黙ってクラッシュするようです。試してみると、何とかエラーをキャッチしていないようです。

ヘルプ?ありがとう!

+0

ログや画面に何らかのエラーが表示されたらどうしたらいいですか? – Jakub

+0

一時的にアップロードされたファイルに直接変換することはできないと思いますが、move_uploaded_file()を実行してからimagecreatefrom pngを実行するのはどうですか? – ajreal

+0

@Navneetコードは書かれたとおりに動作します。私はそれに何か間違っているとは思わない。 'imagecreatefrompng()'関数のリソースIDを取得します.http://php.net/manual/en/function.imagecreatefrompng.phpを参照してください。なぜイメージが元のイメージになっていないのですか? –

答えて

0

は、私は永遠にPHPでファイルのアップロードを処理していないが、それはこの行がいる可能性があり:

$picture_uploaded = $_FILES["new_user_picture"]["tmp_name"] 

$picture_uploaded = $_FILES["new_user_picture"]すべきですか?

最初の行は、アップロードされたファイルのファイル名を取得するはずですが、2行目(上の編集行)はファイル自体への参照である必要があります。

HTH。

編集:私の答えが間違っているのを見ていますが、これは役に立ちますか? http://www.php.net/manual/en/function.imagecreatefromstring.php 。ユーザーノート/コメントにヘルパー機能があり、実行している作業を簡略化できます

+0

関数は、実際にはファイル名とパスを必要とします。これはうまくいかないでしょう。 – Navneet

+0

ちょうどマニュアルを熟読し、それに応じて私の答えを編集しようとしていた...申し訳ありません。 :p –

関連する問題