上传文件的样式

在网上找了很久上传文件的样式,并没有适合自己的,现在推荐一个样式给大家,可以看到自己是否选到文件和文件名。效果如下图所示:

html 代码如下:

<div class="uploading">
    <span>上传文件:</span>
    <input class=‘view‘ id="viewfile" type="text" onmouseout="document.getElementById(‘uploadfile‘).style.display = ‘none‘;" readonly />
    <label class="filelab" for="uploadfile" onmouseover="document.getElementById(‘uploadfile‘).style.display = ‘block‘;">浏览</label>
    <input class="upload" id="uploadfile" name="uploadfile" type="file" />
</div>

css 代码如下:

.uploading {
    position: relative;
    height: 28px;
}
.uploading span {
    float: left;
    line-height: 28px;
}
.uploading .view {
    float: left;
    width: 120px;
    height: 26px;
    padding: 0 0 0 10px;
    line-height: 26px;
    border: 1px solid #d2d2d2;
}
.uploading .filelab {
    display: inline-block;
    float: left;
    width: 68px;
    height: 28px;
    line-height: 28px;
    text-align: center;
    color: #fff;
    background: #bd3a39;
}
.uploading .upload {
    position: absolute;
    left: 302px;
    width: 68px;
    height: 28px;
    opacity: 0;
    filter: alpha(opacity=0);
}

最后 js代码如下:

1 var uploadfile = document.getElementById(‘uploadfile‘);
2 var viewfile   = document.getElementById(‘viewfile‘);
3 uploadfile.onchange = function() {
4     var value = uploadfile.value.split(‘\\‘)[2]||‘‘;
5     viewfile.setAttribute(‘value‘, value);
6     uploadfile.style.display = ‘none‘;
7 }

对于第4行代码,可能有点难理解,如果打印出 uploadfile.value 值,它是 ‘C:\fakepath\demo.rar‘, ‘C:\fakepath\‘ 是自动生成的假路径,只要把假路径删除就行了,通过 split 方法把这个字符串以 ‘\‘ 分隔生成一个数组 ["C:", "fakepath", "demo.rar"],取出数组中下标为2的就是想要的文件名 ‘demo.rar‘,如果重新选择文件时取消上传,也会触发 change 事件,uploadfile.value 值为空,同时也会把之前选的文件删除。

时间: 2024-10-08 20:50:18

上传文件的样式的相关文章

怎样用纯HTML和CSS更改默认的上传文件按钮样式

如果你曾经试过,你就会知道,用纯CSS样式加HTML实现统一的上传文件按钮可能会很麻烦.看看下面的不同浏览器的截图.很明显的,他们长得很不一样. 我们的目标是创造一个简洁,用纯CSS实现的,在所有浏览器里的样子和布局是一样的上传文件按钮.我们可以这样: 步骤1.创建一个简单的HTML标记 1 2 3 4 <div class="fileUpload btn btn-primary">     <span>Upload</span>     <i

CSS自定义上传文件按钮样式(兼容I6+)

参考网址:http://www.alleyloft.com/contents/share?id=14 <!doctype html> <html> <head> <meta charset="UTF-8"> <title>demo</title> <style> *{margin: 0;padding: 0;} .box{ position:relative; float:left; overflow:

兼容IE浏览器样式的html上传文件控件

最近在公司做项目时需要用到html的上传文件控件,但发现原生的上传文件控件<input type="file" />在IE.Chrome浏览器的显示效果相差很大,为了统一样式,我参考了网上的许多方法,下面给出我自己的代码实现(实际上就是在原生的input file上面加个外壳,再添加一些样式,让它看上去不像原生的这么丑) html部分 <div class="upload-box"> <div class="input&quo

web前端上传文件按钮自定义样式

思路: 按钮进行隐藏,样式自己该怎么写怎么写,之后通过js监测input改变上传文件. 前端写法: // jquery + bootstrap写法 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>上传文件获取URL</title> <link rel="stylesheet" h

ajax+ashx 完美实现input file上传文件

1.input file 样式不能满足需求 <input type="file" value="浏览" /> IE8效果图:    Firefox效果图: Chrome效果图:   2.input file上传按钮美化 css: .file{ position: relative; background-color: #b32b1b; border: 1px solid #ddd; width: 68px; height: 25px; display:

Js 跨域上传文件

代码在github上( https://github.com/andygithubchen/jsUpload ),请结合github上的文件阅读. 主要实现js跨域上传文件,这里的跨域目前只在两个域名所指向的服务器在同一局域网内. 当然,这两种方案都可以做同域名上传. 例如: 192.168.1.60 www.test.cn 192.168.1.61 www.video.cn 如果要在www.test.com域名下上传文件到www.video.com域名下,可以使用下面这两个方案: 方案一(在s

不带插件 ,自己写js,实现批量上传文件及进度显示

今天接受项目中要完成文件批量上传文件而且还要显示上传进度,一开始觉得这个应该不是很麻烦,当我在做的时候遇到了很多问题,很头疼啊. 不过看了别人写的代码,自己也测试过,发现网上好多都存在一些问题,并不是自己想要的.然后自己查阅各种资料,经过自己总结,最终完成了这个功能. 如果大家有什么问题可以提出来,一起交流,学习.有什么不对的地方也指出来,我也虚心学习.自己也是刚写博客,您们的赞是我写博客的动力,谢谢大家. 条件:我采用struts2,java ,ajax,FormData实现; 1.实现的逻辑

上传文件

上传文件 1.Form表单上传 接下来我们使用HTML标签来创建文件上传表单,以下为要注意的点: form表单 method 属性必须设置为 POST 方法 ,不能使用 GET 方法. form表单 enctype 属性需要设置为 multipart/form-data. enctype 属性规定在发送到服务器之前应该如何对表单数据进行编码.默认地,表单数据会编码为 “application/x-www-form-urlencoded”.就是说,在发送到服务器之前,所有字符都会进行编码(空格转换

如何将上传文件的浏览按钮修改为自定义按钮

最近,在修改一个国际化项目,碰到一个上传文件的地方,要将显示为的浏览按钮修改为自定义英文的英文按钮Brows,虽说那个按钮会根据系统语言自动切换,但就是在自己电脑上看着不爽,非要改成英文. 大致思想就是:将真的file进行隐藏,使用普通的text和button拼接成我们的文件上传样式.然后设置button的onclick事件,该事件响应的是又是file的click事件,最后设置file的onchange事件,当file改变时将file的value值填充到text的value中(也就是文件的上传路