input file 样式以及获取选择文件方法集合

样式一(http://www.cnblogs.com/jason-liu-blogs/archive/2013/06/13/3133377.html

<style>
a{display:inline-block; width:100px; height:40px; background:red; position:relative; overflow:hidden;}
a:hover{background:green;}
input{position:absolute; right:0; top:0; font-size:100px; opacity:0; filter:alpha(opacity=0);}
</style>

<a href="#">
    <input type="file" value="浏览" />
</a>

外观一

样式二(http://www.jb51.net/css/69093.html

CSS 代码
*{margin:0;padding:0;}
a{text-decoration:none;}
.btn_addPic{
display: block;
position: relative;
width: 140px;
height: 39px;
overflow: hidden;
border: 1px solid #EBEBEB;
background: none repeat scroll 0 0 #F3F3F3;
color: #999999;
cursor: pointer;
text-align: center;
}
.btn_addPic span{display: block;line-height: 39px;}
.btn_addPic em {
background:url(http://p7.qhimg.com/t014ce592c1a0b2d489.png) 0 0;
display: inline-block;
width: 18px;
height: 18px;
overflow: hidden;
margin: 10px 5px 10px 0;
line-height: 20em;
vertical-align: middle;
}
.btn_addPic:hover em{background-position:-19px 0;}
.filePrew {
display: block;
position: absolute;
top: 0;
left: 0;
width: 140px;
height: 39px;
font-size: 100px; /* 增大不同浏览器的可点击区域 */
opacity: 0; /* 实现的关键点 */
filter:alpha(opacity=0);/* 兼容IE */
} 

HTML代码
<A class=btn_addPic href="javascript:void(0);"><SPAN><EM>+</EM>添加图片</SPAN> <INPUT class=filePrew title=支持jpg、jpeg、gif、png格式,文件小于5M tabIndex=3 type=file size=3 name=pic></A>

外观二

样式三(http://www.360doc.com/content/12/1229/13/11395036_256962485.shtml

HTml 代码

  <div class="fileInputContainer">
  <input type="file" name="fileData" id="imgFlie"  onchange="showPicture(this.files)" multiple />
  </div>

CSS代码
.fileInputContainer {
      height: 80px;
      background: url(http://wx115.cnpsim.com/Content/images/imagefile.png);
      background-size: contain;
      position: relative;
      width: 80px;
      text-align:center;
  }
  #imgFlie {
      height: 80px;
      overflow: hidden;
      font-size: 100px;
      position: absolute;
      right: 0;
      top: 0;
      opacity: 0;
      filter: alpha(opacity=0);
      cursor: pointer;
  }

样式三

*可以通过JQ注册change事件以便获取选择的文件或图片,在chang事件里面通过 this.files获取选择的文件等,也可像样式三代码中一样通过JS中onchange事件获取,

*有时text-align:center,并不能使其居中时可以尝试用margin-left:30%;margin-right:30%;

 

$("#imgFlie").live("change", function () {
    var data = this.files;
    //var data = document.getElementById(‘imgFlie‘).files;js获取
    $(this).clone().replaceAll(file = this); //每次选中都保存旧元素,并使用新的控件替换(解决紧邻的二次不能选择同一图片)
    $.each(data, function (key, value) {
        var objUrl = getObjectURL(value);
        if (objUrl) {
            var img = new Image();
            img.src = objUrl;
            img.onload = function () {
                var size = img.width + ‘x‘ + img.height;
                $("#ImageDiv").append(‘<figure><div>‘ +
                ‘<a  href=‘ +
                ‘"‘ + objUrl + ‘"‘ +
                ‘data-size=‘ +
                ‘"‘ + size + ‘"‘ +
                ‘>‘ +
                ‘<img class="WorkOrderimageNew" style="height:90px;width:90px;" src=‘ +
                    ‘"‘ + img.src + ‘"‘ +
                ‘>‘ +
                ‘</a>‘ +
                ‘</div>‘ +
                ‘<figcaption style="display:none;">‘ +
                ‘图片‘ +
                //‘<button style="float:right;" onclick=DeleteImage("‘ + value + ‘"‘ +
                //‘,‘ +
                //‘"‘ + value + ‘")>删除图片(手机端需要注册触摸事件)</button> ‘ +
                ‘</figcaption></figure>‘
                )
            };
        }
    });
});
function showPicture(files) {
  //  var files = document.getElementById(‘imgFlie‘).files;
    for (var i = 0; i < files.length; i++) {
        var file = files[i];
        if (!/image\/\w+/.test(file.type)) {
            return false;
        }
        var url = getObjectURL(file)
        if (url) {
            var img = new Image();
            img.src = url;
            img.onload = function () {
                var size = img.width + ‘x‘ + img.height;
                $("#ImageDiv").append(‘<figure><div>‘ +
                ‘<a  href=‘ +
                ‘"‘ + img.src + ‘"‘ +
                ‘data-size=‘ +
                ‘"‘ + size + ‘"‘ +
                ‘>‘ +
                ‘<img class="WorkOrderimageNew" style="height:40px;width:40px;" src=‘ +
                    ‘"‘ + img.src + ‘"‘ +
                ‘>‘ +
                ‘</a>‘ +
                ‘</div>‘ +
                ‘<figcaption style="display:none;">‘ +
                ‘这是的图片名‘ +
                 ‘"‘ + file.name + ‘"‘ +
                ‘</figcaption></figure>‘
                )
            }
        }
    }
}
时间: 2024-10-07 14:23:56

input file 样式以及获取选择文件方法集合的相关文章

IE input file隐藏不能上传文件解决方法

当大神们都在探讨更深层次的问题时,我还在这里转载发些肤浅的问题解决方案.罢了,为了和我一样笨的后来人. 问题: 上传文件时,用<input type="file" />标签,但是默认的file标签很难看,而且每个浏览器下都有很大差距. 1.一般解决办法: 我们基本都把真正的file标签给隐藏,然后创建一个标签来替代它,比如我们创建一个a标签来替代它,隐藏file标签,单击a标签时触发file标签click弹出选择文件窗口,选择文件之后,触发file的change事件提交.

Silverlight获取选择文件的本地物理路径

最近在做一个大文件断点续传的控件,有试过纯C#的代码来写,但后来发现是在是太不灵活了,于是考虑使用控件.但在控件开发过程中发现,如何获取上传文件的物理路径是个大问题,因为Silverlight不支持获取客户端路径的,不仅是Silverlight,所有的微软上传控件都不支持获取本地物理路径.于是我就各种查,终于发现有种方法可以获取到文件的信息了. 先看一个例子 1 #region 选择文件 2 private void bt_SelectFile_Click(object sender, Rout

自定义input file样式

自定义input file样式:一般都是通过隐藏input,通过定义label来实现.这种做法要注意的是label的for属性要指定input对应的id; <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style type="text/css"> #file { display: none;

html input file标签的上传文件 注意点

文件上传框  代码格式:<input type=“file” name=“...” size=“15” input enctype="multipart/form-data“ maxlength=“100”> 属性解释: 属性解释: type=“file”定义文件上传框: name属性定义文件上传框的名称,要保证数据的准确采 集,必须定义一个独一无二的名称: size属性定义文件上传框的宽度,单位是单个字符宽度: maxlength属性定义最多输入的字符数. 注意: 要使得文件上载能

input file样式,文件路径、文件名的获取

http://blog.csdn.net/comikey/article/details/8954479 解决思路是把input 放在文字的上边,弄成透明的,这样在点文字时,实际是点击了input,这样就实现了文件的上传.是不是很简单呀. 具体代码: <style> #uploadImg{ font-size:12px; overflow:hidden; position:absolute} #file{ position:absolute; z-index:100; margin-left:

以input=file方式,获取文件时,在IE下8无法通过某个按钮click事件间接触发input=file的change事件

最近在项目中遇到了许多上传问题,公司内部的组件,通过form上传,需要使用input=file触发选择文件, 因为input=file在各个浏览器中显示的样式是不同的,谷歌,火狐,IE都有所不同,而且不太美观,所以为了解决 这一个问题,一开始采用了隐藏input=file 然后通过一个显示的button间接触发input=file的click事件如下 <input type="file" id="upload" style="display:none

input(file)样式修改及上传文件名显示

实现思路: a标签包裹input元素 设置a标签为上传按钮的样式,相对定位 设置input为透明,绝对定位,覆盖到a上面 效果:看到的按钮是a的样式,点击时实际是点击input元素.样式和功能都具备 html代码: <a href="javascript:;" class="file gradient">选择文件 <input type="file" > </a> CSS代码: .file { position

安装coreseek cannot find input file: src/Makefile.in 错误解决方法

安装coreseek 出现了cannot find input file: src/Makefile.in 解决方法如下 >autoheader >automake --add-missing --copy >autoconf 然后再执行./configure --prefix=/usr/local/mmseg 即可解决.

input:file onchange事件无法读取解决方法

最近做项目,移动端的多文件上传,使用input:file读取文件 <input type='file' name='file' multiple accept='image/*' capture='camera'> 但是在移动端 设置 multiple 属性是不起作用的,设置此属性PC端可以多选而移动端无法多选. 我使用的解决方案是动态添加 input:file标签.,每添加一个标签就出发一次click事件读取文件.然后选择相片并且将相片显示在页面上. 一开始直接在通过JQuery绑定chan