限制圖片的長寬尺寸問題解決-2021-7-29
阿新 • • 發佈:2021-07-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