3 回答

TA貢獻1856條經驗 獲得超5個贊
您可以通過僅請求標題來獲取內容長度。這是一個基于獲取的方法,在這里這個答案:
const getFileSize = async (url) => {
const response = await fetch(url, {method: 'HEAD'})
const size = response.headers.get('content-length')
return size
}

TA貢獻1799條經驗 獲得超6個贊
該協議提供了該方法。根據維基百科的HTTP文章,它就像方法一樣,只是它只返回HTTP標頭而不是數據。HTTP
HEAD
GET
這可能正是您所需要的:發出 AJAX 頭請求而不是 AJAX-GET 請求,并從結果中解析圖像的預期大小。
我不知道如何在JS中表述這一點,但Linux命令行證明了這個原理是有效的。如果我鍵入:
curl --head https://media.giphy.com/media/yYSSBtDgbbRzq/giphy.gif
我從包含該行的服務器收到響應
content-length: 2156106
這是你想要的信息。

TA貢獻1810條經驗 獲得超4個贊
您可以使用它使用戶能夠上傳下載的文件或復制/粘貼.gif文件的鏈接。<input type="file" class="js-file-upload" />
之后,從JS端,您將需要檢查該文件的大?。ㄈ绻麄冋迟N直接鏈接,它將自動上傳到用戶PC的臨時文件中)。
下面是一個簡單的示例
const file = document.querySelector('.js-file-upload').files[0];
const fileSize = (file.size/1024/1024).toFixed(2);
const allowedSize = 5;
if (fileSize > allowedSize) {
//print error
}
添加回答
舉報