php
  • javascript
  • validation
  • resolution
  • image-size
  • 2012-05-04 54 views 1 likes 
    1

    我想在使用Javascript上傳PHP圖片之前驗證圖片解析度。在我的php表單中,我想要上傳兩個不同的圖像,並且兩個圖像都有不同的分辨率限制。驗證圖片使用Javascript的解析度,PHP

    我試試下面的代碼

    PHP代碼

    echo "<form name='add' enctype='multipart/form-data' action='AppActions.php' method='post' onSubmit='return validate_create();'>"; 
    echo "<div class='form_label'>Album Wrapper (Big Image) *</div>"; 
    echo "<div class='form_input'><input type='file' name='bigimage' id='bigimage' />"; 
    
    echo "<div class='form_label'>Album Wrapper (Small Image) *</div>"; 
    echo "<div class='form_input'><input type='file' name='smallimage' id='smallimage' />; 
    echo "<input type='submit' name='add' value='Create' class='Buttons' id='add'>";  
    

    在Javascript中

    function validate_create() 
    { 
    var bigimage = document.getElementById('bigimage'); 
    var smallimage = document.getElementById('smallimage'); 
    
    var big_img_width = bigimage.clientWidth; 
    var big_img_height = bigimage.clientHeight; 
    
    var small_img_width = smallimage.clientWidth; 
    var small_img_height = smallimage.clientHeight; 
    
    // if condtion to check the condition // 
    } 
    

    這裏我得到寬度和高度爲相同甚至我選擇不同大小的文件兩個圖像。

    如何做到這一點?請建議我

    在此先感謝

    +0

    您可以在上傳到服務器之前在PHP中檢查它,但不能在javascript中檢查 – 2012-05-04 08:21:08

    +0

    感謝user1331534。上傳之前如何檢查PHP?你能幫我解決嗎? –

    +0

    用戶上傳文件之前,您無法使用PHP *做到這一點。 – ThiefMaster

    回答

    0

    當你執行bigimage.clientWidthsmallimage.clientWidth,你實際上得到input元素,而不是你要上傳的圖片的寬度。此外,您的JavaScript在文件實際上傳之前執行,目前還不知道圖像的分辨率。事實上,你甚至不知道這些文件是否真的是圖像文件。

    只有上傳完成後,才能確定上傳文件的類型以及圖像的分辨率(如果是圖像)。因此必須以PHP(您的AppActions.php腳本)完成。在PHP中,您可以訪問全局文件$_FILES以查看哪些文件已上傳,其類型和大小。然後可以打開圖像並使用imagesximagesy來確定尺寸。

    如果您在允許上傳之前必須知道文件類型,那麼我相信您唯一的出路就是使用Flash組件。例如,SWFUploader。 JavaScript永遠不能訪問用戶計算機上的文件,但Flash可以並且允許您在實際上傳文件之前確定文件類型和大小。但是,您的網站仍然需要Flash,這可能不是您想要的。

    +0

    感謝Alex van Oostenrijk ... –

    +1

    在上載實際發生之前,可以確定上傳文件的類型。 – erdomester

    4

    您可以在JavaScript中使用新的HTML5文件API來檢查這一點。但是,這在許多瀏覽器中都不可用。你可以實現它,所以支持這個的瀏覽器的用戶,他們可以有這個優勢。查看this SO post瞭解更多信息和示例。另一種可能性是使用某種類型的Flash上​​傳器(只需搜索它)。

    你不能在PHP中預先檢查它。 PHP運行服務器端,顯然,它不能訪問客戶端計算機上的任何內容。

    1

    使用getimagesize()來驗證文件的大小。如果它無效,則拋出錯誤。 另外,您可能想要閱讀get uploaded image dimensions with javascript/jquery?

    相關問題