1. 程式人生 > 其它 >限制圖片的長寬尺寸問題解決-2021-7-29

限制圖片的長寬尺寸問題解決-2021-7-29

這是期望效果:

用file上傳檔案,一開始用的file.size,發現計算的是圖片的大小,因解析度不相同,兩張長寬尺寸一樣的圖片size也是不同的,無法達到目的。

用Image()方法,

把圖片file 傳給Image() new 出來的物件 image,再用其width和height屬性

全域性宣告image:

 constructor(props) {
    super(props);
    this.image = new Image();
    this.width = 0;
    this.height = 0;
    this.state = {
      imgsList: [],
      referralType: 
'1' }; }

將file賦給image.src:

               <Upload
                  accept='.jpg,.png,.jpeg,.bmp'
                  className='report-upload'
                  showUploadList={{showRemoveIcon: false}}
                  beforeUpload={(file) => {
                    this.setState(() => ({
                      imgsList: [file]
                    }));
                    
this.image.src = file; this.width = this.image.width; this.height = this.image.height; return false; }} fileList={imgsList} > {imgsList.length === 0 && <div className='item-upload'>{tmp.pic || '上傳圖片'}</div>} </Upload>

使用width, height限制:

 if (!(this.width === 260 && this.height === 120) || !(this.width === 260 && this.height === 42)) {
        alert('請上傳尺寸為260 * 120 或 260 * 42的圖片');
        return false;
      }

需要注意:

我改動之後發現width和height都是0,

測試的時候放在伺服器上測試,本地不行的。因為js沒有許可權讀取和修改本地的檔案,只有在伺服器上通過url下載圖片才能讀取到圖片的寬高和大小

參考https://zhidao.baidu.com/question/488777030449774252.html