<section class="upload-section">
<article class="upload-piclist">
<div class="upload-file">
<input type="file" id="file" accept="image/*" multiple onchange="imgChange()"/>
</div>
</article>
</section>
css:
/* body {
margin: 0
padding: 0
max-width: 414px
margin: 0 auto
} */
.upload-fh {
background-image: url('data:image/pngbase64,iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAYAAAA6/NlyAAAD1klEQVRoQ+XbTYhWVRgH8P8fwZUguFKi2pShbvqg2lhhG0PJlc40zQg62WhDg+jklIo1wViUNgwVTGSWWMngyvCjVdLHLrHaJaOBIIK2DHL7lweegcvL48D7vveee7xztu+d972/Ofec8zznPJe4T5qkRQC2AVgP4A8AMySvt3v7bPcP6rhe0lIAJwFsKvz+CZLb272f7MGSHnDsiy24WZKPNQosyUDWs88EsEGS3zQGLOkpx64OUG+T/LhdrF2f5SMt6QXHPhSghklOd4LNEixpo2OXBaitJL/rFJsdWFKvYxe3oO4A6Cd5phtsVmBJrwH4KgD9C+BVkj91i80GLGk3gKkA9I9jfy8DmwVY0kEAEwHoL8f+XRa2drCkDwG8E4B+A9BH8maZ2FrBkj4D8GYA+hHAKyT/KxtbG1iSRUiWCLS2045VFdjkYEm23HwPYHMAOk5yR1XQue9NFmlJskDCsC8FqCmSe6rGJuthSRYiGnZtgJogeSgFNglYkgX/hn08QI2RPJIKWzlYkqV1hn0kQL1B8ouU2ErBkixhN+zyADVA0j5L3iqZtCTZVoyBlrSILAmwNfZscqn/YOlgSf0AohTOkoBekj/XhS39kZa0E0A0Li0JMOzlOrGlgiWNAjgagCwJ6CF5tW5saWBJ7wEYD0CWBBj2Vg7YUsCSbB19KwBdcOz/uWC7BkuyzbRdAchOBfpygs7dS8eztKRvAQwEqGMkh3LEdtzDkj4CMBagJkna5JVt66iHJUX56jjJ97OVdhN4SLJtGdueaW3N7GFTLqgxPNetC2qWLqDtUGtf8Hif93CyOetwAf0ugGjC+tXRzYm0Cui9AD4JevpPRzcnli6gXwfwZYC+5mGm4WttHa3D892xJAspTwXX3Pae/qVOcelgX7JednS042F58bm60JWAHb3Ot3lWBDg7N5qpA10Z2NFPO/rRADdE8lhqdKVgR69y9BMBbpTkZEp05WBHP+jo5wJc0qQjCdjRdrZkOfSGAJ0s6UgGdrSdHhq6J0An2ThICi4EKMcBDAZom7mtgKUZ58NFoCQrYrFiltZmSYehm1MBUOjpwwAOBGhLOgzdnBqPAno/gA8CtMXdhr5S5rJVyxhuBUgaAfBpALOkw9CXykJnAfYZ3Iq9vw5glnQY+mIZ6GzAjt7iJ49RraWhf+gWnRXY0RaY2Frd/GrawkT2vFfVPhz0aLPqpQvoJx29JkA3qyK+gF7p6GcD9AjJz9sd09mN4WDJutdbLTdIRq8IzPs/yB7sE9nCeW+p8Hjbm2nDAKwcahbAdGPfTGt3nM53/V00ckNMKWY8LAAAAABJRU5ErkJggg==')
background-repeat: no-repeat
background-size: 100% 100%
height: 30px
width: 30px
}
.upload-hedaer {
height: 55px
display: grid
grid-template-columns: repeat(3, 1fr)
padding: 0 10px
box-sizing: border-box
align-items: center
text-align: center
background: #287cff
color: #fff
border-bottom: 1px solid #efefef
font-size: 19px
}
.upload-hedaer div:last-child {
text-align: right
}
.upload-textarea {
width: 100%
height: 60px
font-size: 28px
border: 1px solid #efefee
max-height: 300px
}
.upload-article-text {
width: 100%
padding: 10px
box-sizing: border-box
}
.upload-file {
position: relative
background: url('../images/z_add.png') no-repeat 50%/100% 100%
/* width: 100px*/
height: 120px
order: 9
}
.upload-piclist {
padding: 0 10px
box-sizing: border-box
display: grid
grid-template-columns: repeat(3, 120px)
justify-content: space-between
grid-gap: 14px
}
#file {
width: 100%
height: 100%
opacity: 0
}
.upload-Picitem {
width: 100%
height: 120px
}
.upload-Picitem>img {
width: 100%
height: 100%
object-fit: cover
}
.submit {
padding: 15px 0
background-color: #287cff
color: #fff
text-align: center
margin: 10px
font-size: 20px
border-radius: 10px
}
.upload-sm {
padding: 10px
box-sizing: border-box
color: gray
}
.upload-sm ol>li {
margin-bottom: 10px
}
js:let picmax = 9//限制上传数量
function imgChange() {
let file = document.getElementById('file').files
let imglist = document.querySelectorAll('.upload-Picitem')
let piclist = document.getElementsByClassName('upload-piclist')[0]
let filelist = file.length + imglist.length >picmax ? 9 - imglist.length : file.length + imglist.length
if (file.length + imglist.length >= 9) {
let uploadfile = document.getElementsByClassName('upload-file')[0]
uploadfile.style.display = "none"
}
for (let i = 0i <filelisti++) {
readerfile(file[i]).then(e =>{
let html = document.createElement('div')
html.className = 'upload-Picitem'
html.innerHTML = '<img src=' + e + ' alt="pic">'
piclist.appendChild(html)
})
}
}
function readerfile(file) {
return new Promise((resolve, reject) =>{
let reader = new FileReader()
reader.addEventListener("load", function() {
resolve(reader.result)
}, false)
if (file) {
reader.readAsDataURL(file)
}
})
}
//提交
function submit() {
let imglist = []
let text = document.getElementsByClassName('upload-textarea')[0].value
let piclist = document.querySelectorAll('.upload-Picitem')
for (let i = 0i <piclist.lengthi++) {
imglist.push(piclist[i].lastChild.src)
}
console.log("发布内容:", text)
console.log("图片列表:", imglist)
}
//textarea高度自适应
var autoTextarea = function(elem, extra, maxHeight) {
extra = extra || 0
var isFirefox = !!document.getBoxObjectFor || 'mozInnerScreenX' in window,
isOpera = !!window.opera &&!!window.opera.toString().indexOf('Opera'),
addEvent = function(type, callback) {
elem.addEventListener ?
elem.addEventListener(type, callback, false) :
elem.attachEvent('on' + type, callback)
},
getStyle = elem.currentStyle ? function(name) {
var val = elem.currentStyle[name]
if (name === 'height' &&val.search(/px/i) !== 1) {
var rect = elem.getBoundingClientRect()
return rect.bottom - rect.top -
parseFloat(getStyle('paddingTop')) -
parseFloat(getStyle('paddingBottom')) + 'px'
}
return val
} : function(name) {
return getComputedStyle(elem, null)[name]
},
minHeight = parseFloat(getStyle('height'))
elem.style.resize = 'none'
var change = function() {
var scrollTop, height,
padding = 0,
style = elem.style
if (elem._length === elem.value.length) return
elem._length = elem.value.length
if (!isFirefox &&!isOpera) {
padding = parseInt(getStyle('paddingTop')) + parseInt(getStyle('paddingBottom'))
}
scrollTop = document.body.scrollTop || document.documentElement.scrollTop
elem.style.height = minHeight + 'px'
if (elem.scrollHeight >minHeight) {
if (maxHeight &&elem.scrollHeight >maxHeight) {
height = maxHeight - padding
style.overflowY = 'auto'
} else {
height = elem.scrollHeight - padding
style.overflowY = 'hidden'
}
style.height = height + extra + 'px'
scrollTop += parseInt(style.height) - elem.currHeight
document.body.scrollTop = scrollTop
document.documentElement.scrollTop = scrollTop
elem.currHeight = parseInt(style.height)
}
}
// addEvent('propertychange', change)
// addEvent('input', change)
// addEvent('focus', change)
change()
}
pic:z_add.png
分类: 电脑/网络 >>程序设计 >>其他编程语言问题描述:
我用做上传图片时,怎样限制上传图片的尺寸?就是在图片上传之前,用javascript报错?
解析:
<script>
var img=null
var xianzhiheight=60限制尺寸的高度
var xianzhiwidth=80限制尺寸的宽度
function yanzheng()
{
if(img)img.removeNode(true)
img=document.createElement("img")
img.style.position="absolute"
img.style.visibility="hidden"
document.body.insertAdjacentElement("beforeend",img)
img.src=form1.file.value
if (img.offsetHeight>xianzhiheight)
{
alert("您选择的图片超过了上传限制的最大高度:"+xianzhiheight)
document.form1.file.outerHTML=document.form1.file.outerHTML.replace(/value=\w/g,'')
return false
}
if (img.offsetWidth>xianzhiwidth){
alert("您选择的图片超过了上传限制的最大宽度:"+xianzhiwidth)
document.form1.file.outerHTML=document.form1.file.outerHTML.replace(/value=\w/g,'')
return false
}
}
</script>
<form id="form1" name=form1 method="post" action="">
<input type=file Name="file" id="file" value="默认值" onchange="yanzheng()">
<input type=submit name=Submit value="提交" />
</form>
html表单这样上传图片:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "www.mobiletrain.org /TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="www.mobiletrain.org ">
<head>
<meta http-equiv="Content-Type" content="text/htmlcharset=utf-8" />
<title>上传图片</title>
</head>
一、html在表单元素中这样添加背景图
用户名:<input type="text" name="user" style="background: url(图片路径)" /><br/>
密 码: <input type="password" name="mima" style="background: url(图片路径)" /><br/>
<input type="submit" value="确定" style="background: url(图片路径)" />
<input type="reset" value="取消" style="background: url(图片路径)" />