function changeFile() {
var preview = document.getElementById("previewDiv");
preview.style.backgroundImage = "";
var element = document.getElementById("ads_files");
var files = element.files;
var file = files[0];
console.log(file);
var reader = new FileReader();
reader.onload = loadFinished;
reader.readAsDataURL(file);
function loadFinished(event) {
var data = event.target.result;
preview.style.backgroundImage = 'url(' + data + ')';
}
}
#previewDiv {
border: 2px solid rgb(204, 204, 204);
width: 250px;
height: 200px;
background-size: 100% 100%;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="file" id="ads_files" name="file" onchange=changeFile() />
<div id="previewDiv">
</div>
上面的代碼是上傳圖片並顯示爲div的背景上傳的圖片的大小。它完美的作品。
現在我想上傳適當寬度和高度的圖片。所以我需要獲取上傳圖片的大小(其他圖片不會上傳到服務器)。
我在互聯網上搜索了一些解決方案。看起來,document.getElementById(「ads_files」)。值可能會在圖像上傳後得到文件的路徑。然後使用Image.src = document.getElementById(「ads_files」)加載圖像並使用Image函數獲取大小。
但問題是,該值是一個像c:\ fakepath \ 10256530_503531203106865_63236440322903725_n.jpg(我使用Mac !!!!)的假路徑。當然,這個程序不會起作用。
我敢打賭,這項工作可以在當地完成,但我不知道該怎麼做。
任何好主意?
什麼叫適當大小的意思是,你說的是圖像尺寸或圖像文件的大小? – Sreekanth
file.size獲取文件的大小。 –
重複的 http://stackoverflow.com/questions/7497404/get-file-size-before-uploading http://stackoverflow.com/questions/3717793/javascript-file-upload-size-validation –