2016-07-04 8 views
0

次のコードを使用して、画像をフォルダにアップロードしました。私のフォルダ名はADSです。その画像をADSディレクトリにアップロードするのを手伝ってください。画像をディレクトリにアップロードする方法

ルート

- 画像が位置はlocalhost/DC/ADS

if (isset($_POST["submit"])) { 
    if (is_array($_FILES)) { 
     $file = $_FILES['myImage']['tmp_name']; 
     $source_properties = getimagesize($file); 
     $image_type = $source_properties[2]; 

     if ($image_type == IMAGETYPE_JPEG) { 
      $image_resource_id = imagecreatefromjpeg($file); 
      echo $target_layer = fn_resize($image_resource_id,$source_properties[0],$source_properties[1]); 
      echo imagejpeg($target_layer,$_FILES['myImage']['name']); 
     } elseif ($image_type == IMAGETYPE_GIF) { 
      $image_resource_id = imagecreatefromgif($file); 
      echo$target_layer = fn_resize($image_resource_id,$source_properties[0],$source_properties[1]); 
      echo imagegif($target_layer,$_FILES['myImage']['name']); 
     } elseif ($image_type == IMAGETYPE_PNG) { 
      $image_resource_id = imagecreatefrompng($file); 
      echo$target_layer = fn_resize($image_resource_id,$source_properties[0],$source_properties[1]); 
      echo imagepng($target_layer,$_FILES['myImage']['name']); 
     } 
    } 
} 

function fn_resize($image_resource_id,$width,$height) 
{ 
    $target_width =540; 
    $target_height =400; 
    $target_layer=imagecreatetruecolor($target_width,$target_height); 
    imagecopyresampled($target_layer,$image_resource_id,0,0,0,0,$target_width,$target_height, $width,$height); 
    return $target_layer; 
} 

Iのフォルダに追加する必要がローカルホスト/ DC/upload.php (コードがこの位置にある)

このコードを使用すると、画像はImage1のように表示されます。 Image2のようにイメージを変更する必要はなく、Image3のように画像にテキストまたは画像の透かしを入れる必要があります。

enter image description here

答えて

0

PHP関数imagepng imagegifとimagejpegすべてはにファイル名を渡す引数を持っています。私はこれを示すためにコードをリファクタリングしました。

<?php 

if (isset($_POST["submit"])) { 
    if (is_array($_FILES)) { 
     $file = $_FILES['myImage']['tmp_name']; 
     $source_properties = getimagesize($file); 
     $image_type = $source_properties[2]; 

     if ($image_type == IMAGETYPE_JPEG) { 
      $image_resource_id = imagecreatefromjpeg($file); 
      echo $target_layer = fn_resize($image_resource_id, $source_properties[0], $source_properties[1]); 
      imagejpeg($target_layer, "localhost/dc/ADS/" . $_FILES['myImage']['name']); 
     } 
     elseif($image_type == IMAGETYPE_GIF) { 
      $image_resource_id = imagecreatefromgif($file); 
      echo$target_layer = fn_resize($image_resource_id, $source_properties[0], $source_properties[1]); 
      imagegif($target_layer, "localhost/dc/ADS/" . $_FILES['myImage']['name']); 
     } 
     elseif($image_type == IMAGETYPE_PNG) { 
      $image_resource_id = imagecreatefrompng($file); 
      echo$target_layer = fn_resize($image_resource_id, $source_properties[0], $source_properties[1]); 
      imagepng($target_layer, "localhost/dc/ADS/" . $_FILES['myImage']['name']); 
     } 
    } 
} 

function fn_resize($image_resource_id, $width, $height) { 
    $target_width = 540; 
    $target_height = 400; 
    $target_layer = imagecreatetruecolor($target_width, $target_height); 
    imagecopyresampled($target_layer, $image_resource_id, 0, 0, 0, 0, $target_width, $target_height, $width, $height); 
    return $target_layer; 
} 
+0

imagepng($ target_layer、$ _FILES [ 'MYIMAGE'] [ '名前']、 "ローカルホスト/ DC/ADS/image.png"); このコード行を使用すると、必要なフォルダに移動しません。次のエラーが発生します 警告:imagejpeg()はパラメータ3が長くなることを期待しています – DiN

+0

うわー、私はコードを駄目にしました。上記のコードを編集して、正しいコードでなければならないものを反映させました。 –

関連する問題