2014-02-23 54 views
0

我有一些代碼,我改變了。這是prevusly得到文件分機。我希望它能夠獲得洪流圖像的寬度(甚至在點擊提交輸入之前),如果它太小,就會發出警報。問題是,我真的不知道我可以如何連接這個JS代碼與HTML格式。獲取上傳圖像的寬度(上傳文件到服務器之前)

<form id="add" method="POST" enctype="multipart/form-data" action="upload.php"> 
<input type="file" id= "filput" style="margin-bottom:30px; margin-top:20px;" name="file" size="40" /> 
</form> 


$("#filput").on('change', function() { 
    var w = $(this).width(); 
    if (w < 500) { 
     alert("too small"); 
    } else { 
     alert("big"); 
    } 
}); 
+0

'$(本)'在 '變' 的處理程序是指'#filput'元素,而不是您上傳的圖片。 – Derek

回答

2

this referrs於輸入不是圖像。您也使用HTML5文件API。

你可以用這個例子:How to get the image width from html 5 file API

代碼示例:從複製:Getting Image Dimensions using Javascript File API

$("#filput").on('change', function() { 
    var fr = new FileReader; 

    fr.onload = function() { // file is loaded 
     var img = new Image; 

     img.onload = function() { 
      alert(img.width); // image is loaded; sizes are available 
     }; 

     img.src = fr.result; // is the data URL because called with readAsDataURL 
    }; 

    fr.readAsDataURL(this.files[0]); // I'm using a <input type="file"> for demonstrating 
}); 
+0

我不鼓勵您使用FileReader來完成此任務。你冒着耗盡瀏覽器內存的風險,更不用說這是一個令人難以置信的無效操作,尤其是當涉及大型文件時。相反,使用URL.createObjectURL,傳入文件或blob。然後,將此調用的結果設置爲img的src attr。 –