私は小規模な更新プロファイルの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
は、黙ってクラッシュするようです。試してみると、何とかエラーをキャッチしていないようです。
ヘルプ?ありがとう!
ログや画面に何らかのエラーが表示されたらどうしたらいいですか? – Jakub
一時的にアップロードされたファイルに直接変換することはできないと思いますが、move_uploaded_file()を実行してからimagecreatefrom pngを実行するのはどうですか? – ajreal
@Navneetコードは書かれたとおりに動作します。私はそれに何か間違っているとは思わない。 'imagecreatefrompng()'関数のリソースIDを取得します.http://php.net/manual/en/function.imagecreatefrompng.phpを参照してください。なぜイメージが元のイメージになっていないのですか? –