1

私はこれが完成に非常に近いことを知っています。私の目的は、ユーザーがアップロードしている画像のサイズを 0.5 倍に変更することです。アップロードされた画像の幅と高さを返すことで達成し、それらの値を半分にすることができました。以下のコード:

//get image attributes
    $target = "Images/";
    $target = $target . basename($_FILES['myFile']['name']);

    $thumbnailsize = 0.5;

    //Get uploaded image width and height.
    list($width, $height) = getimagesize($target);

    //Half the current image in size.
    $newWidth = $width * $thumbnailsize;
    $newheight = $height * $thumbnailsize;

    $new_target = imagecreatefromjpeg($target);
    $image = imagecreate($newWidth, $newheight);

    imagecopyresized($image, $new_target, 0, 0, 0, 0, $newWidth, $newheight, $width, $height);

    $pic = $_FILES['myFile']['name'];
    move_uploaded_file($_FILES['myFile']['tmp_name'], $target);

変数の使用と UPDATE SQL ステートメントに問題があると思います。以下を参照してください。

$tUser_SQLselect = "UPDATE User SET imageLocation='" . $pic . "' ";
$tUser_SQLselect .= "WHERE ID = '" . $userID . "' ";

アドバイスをいただければ幸いです。

4

1 に答える 1

2

どこにも呼び出していないimagejpeg()ので、サイズ変更されたファイルはどこにも保存されません。また、サイズ変更されたファイルと一緒に元のファイルを保存する予定がない限り、コピーに move_uploaded_files() を使用することはできません - m_u_l() は、アップロードされたファイルに特定のセキュリティ チェックを適用するために特別に存在するため、アップロードの完了後に改ざんが発生することはありません。ただし、ファイルが動き回る前に、サイズ変更された画像が安全チェックをトリガーします。

また、その変数を介したSQL インジェクション攻撃に広くさらされています。$_FILES 配列のパラメーターはユーザーが指定したデータであり、サーバーを破壊するために使用できます。$pic['name']

于 2012-08-09T20:55:34.767 に答える