0

PHP を使用して、HTML フォームの幅 (PNG、JPG、GIF のみ) から送信された画像のサイズを、たとえば 500px の最大値に変更できる方法はありますか (したがって、ファイルの幅が 350px の場合、ストレッチはありません) )、ランダムな 15 文字の名前 (例: "e19gy675jo5el7g.png") に名前を変更し、image/ ディレクトリに保存しますか?

私はすでにいくつかのコードを持っていますが、ファイルのサイズを変更せず、すべてのファイルタイプをアップロードできます (ファイルの名前をランダムな名前に変更するだけです)。フォームで accept="image/*" HTML コードを使用したくないので、素晴らしい PHP ソリューションを見つけるのを手伝っていただければ幸いです。

これが私のPHPコードです...

    <?php
 function findexts ($filename) 
 { 
 $filename = strtolower($filename) ; 
 $exts = split("[/\\.]", $filename) ; 
 $n = count($exts)-1; 
 $exts = $exts[$n]; 
 return $exts; 
 }     
 $ext = findexts ($_FILES['uploaded']['name']) ;   
 $ran = rand () ;   
 $ran2 = $ran.".";   
 $target = "image/";
 $target = $target . $ran2.$ext;   
if(move_uploaded_file($_FILES['uploaded']['tmp_name'], $target)) 
 {
 echo "The file has been uploaded as ".$ran2.$ext;
 } 
 else
 {
 echo "Sorry, there was a problem uploading your file.";
 }
 ?> 

そして、これが私のHTMLです

<html>
<body>
<form enctype="multipart/form-data" action="upload.php" method="post">
<div>
<input name="uploaded" type="file" />
</div>
<br>
<button type="submit">Upload</button>
</form>
</body>
</html>

複雑な質問で申し訳ありませんが、私は PHP の初心者です :-)

前もって感謝します :-)

4

1 に答える 1

0

コード全体はわかりませんが、PHP の GD ライブラリで実行できます。

getimagesize($filename)

画像の詳細を取得し、それを使用して幅を確認します。幅が 500 未満の場合は、サイズを変更しないでください。

役立つリンク: http://forums.phpfreaks.com/topic/210603-uploaded-image-change-width-and-height/

于 2013-05-01T07:54:09.527 に答える