1

HTML API を使用して、サイトに複数の画像アップロードを追加しました。アップロード中に各画像をテストする必要があります。高さ(高さ>幅)または長さ(高さ

<script type="text/JavaScript">
function filesProcess(files) 
{
  var shape=document.getElementById('shapeval').value;
  for( var i = 0; i < files.length; i++) 
    {
        file = files[i];
        if(!file.type.match(/image.*/)) 
            {


            alert('File name '+file.name+' is not allowed! Please try again!');

            window.location.reload(true);

                continue; //Jump forward to the next file...

                }
      else
        { 
                var iw=document.images[i].width;
            var ih=document.images[i].height;
            var n=document.images[i].name;
            if(shape="tall")
                {

                    alert("width:"+iw+" and height:"+ih);
                }
                else
                {

                    alert("width:"+iw+" and height:"+ih);
                }
            continue;
        }

    }


}
 </script>

HTML

  <form action="upload.php/" method="post" enctype="multipart/form-data" name="uploadForm" onsubmit="return(validate());">
  <input type="file" id="files" name="files[]" multiple  onchange="filesProcess(this.files);" accept="image/*"/>
   <input type="hidden" name="shapeval" id="shapeval" value="tall" />
  </form>

このコードを使用すると、幅と高さが表示されますが、それらの値は正しくありません。ほとんどの場合、両方のタイプの画像で 182 と 51 が表示されます。画像が長いか長いか認識できませんでしたか?どこで間違えましたか?私は何かが欠けていますか?誰か何か考えがありますか??

ありがとう!

4

1 に答える 1

2

私の知る限り、Javascript を介してアップロードしようとしている画像の高さや幅を取得することはできません。イメージをサーバーにアップロードしてから、PHP (またはその他のサーバー側スクリプト言語) を使用してイメージに関する情報を取得する必要があります。PHP 関数getimagesize()を試してみてください。必要な情報が得られるはずです。

画像をインラインで処理し、情報をユーザーにキックバックする場合は、AJAX を使用してフォームを送信し、応答データを使用することをお勧めします。

于 2012-06-21T23:51:18.607 に答える