
分片与并发结合,将一个大文件分割成多块,并发上传,极大地提高大文件的上传速度。
当网络问题导致传输错误时,只需要重传出错分片,而不是整个文件。另外分片传输能够更加实时的跟踪上传进度。
1.2 预览、压缩
支持常用图片格式jpg,jpeg,gif,bmp,png预览与压缩,节省网络数据传输。
解析jpeg中的meta信息,对于各种orientation做了正确的处理,同时压缩后上传保留图片的所有原始meta数据。
1.3 多途径添加文件
支持文件多选,类型过滤,拖拽(文件&文件夹),图片粘贴功能。
粘贴功能主要体现在当有图片数据在剪切板中时(截屏工具如QQ(Ctrl + ALT + A), 网页中右击图片点击复制),Ctrl + V便可添加此图片文件。
1.4 HTML5 &FLASH
兼容主流浏览器,接口一致,实现了两套运行时支持,用户无需关心内部用了什么内核。
同时Flash部分没有做任何UI相关的工作,方便不关心flash的用户扩展和自定义业务需求。
1.5 MD5秒传
当文件体积大、量比较多时,支持上传前做文件md5值验证,一致则可直接跳过。
如果服务端与前端统一修改算法,取段md5,可大大提升验证性能,耗时在20ms左右。
1.6 易扩展、可拆分
采用可拆分机制, 将各个功能独立成了小组件,可自由搭配。
采用AMD规范组织代码,清晰明了,方便高级玩家扩展。
2、引入资源
2.1 下载包内容
├── Uploader.swf // SWF文件,当使用Flash运行时需要引入。
├── webuploader.js // 完全版本。
├── webuploader.min.js // min版本
├── webuploader.flashonly.js // 只有Flash实现的版本。
├── webuploader.flashonly.min.js // min版本
├── webuploader.html5only.js // 只有Html5实现的版本。
├── webuploader.html5only.min.js // min版本
├── webuploader.withoutimage.js // 去除图片处理的版本,包括HTML5和FLASH.
└── webuploader.withoutimage.min.js // min版本
2.2 或者直接使用由staticfile提供的cdn版本,或者下载Git项目包。
// SWF文件,当使用Flash运行时需要引入。
├── http://cdn.staticfile.org/webuploader/0.1.0/Uploader.swf
// 完全版本。
├── http://cdn.staticfile.org/webuploader/0.1.0/webuploader.js
├── http://cdn.staticfile.org/webuploader/0.1.0/webuploader.min.js
// 只有Flash实现的版本。
├── http://cdn.staticfile.org/webuploader/0.1.0/webuploader.flashonly.js
├── http://cdn.staticfile.org/webuploader/0.1.0/webuploader.flashonly.min.js
// 只有Html5实现的版本。
├── http://cdn.staticfile.org/webuploader/0.1.0/webuploader.html5only.js
├── http://cdn.staticfile.org/webuploader/0.1.0/webuploader.html5only.min.js
// 去除图片处理的版本,包括HTML5和FLASH.
├── http://cdn.staticfile.org/webuploader/0.1.0/webuploader.withoutimage.js
└── http://cdn.staticfile.org/webuploader/0.1.0/webuploader.withoutimage.min.js
2.3 DIY打包
WebUploader文件打包借助了Grunt工具来实现
2.3.1 环境依赖
1.git命令行工具
2.node &npm命令行工具
3.grunt (npm install grunt-cli -g)
2.3.2 编译代码
1.克隆 webuploader git仓库,git clone https://github.com/fex-team/webuploader.git。
2.安装node依赖,npm install。
3.执行grunt dist,此动作会在dist目录下面创建合并版本的js, 包括通过uglify压缩的min版本。
2.3.3 配置
打开webuploader仓库根目录下面的Gruntfile.js文件, 代码合并有buildtask来完成。找到build配置项。
Gruntfile.js已经配置了一个自定义合并的demo. 打包只支持HTML5的版本
// 自己配置的实例
// glob语法。
custom: {
preset: "custom",
cwd: "src",
src: [
'widgets/**/*.js',
'runtime/html5/**/*.js' ],
dest: "dist/webuploader.custom.js"
}
3、angular指令——<web-uploader>
3.1 指令功能
添加一个上传文件按钮,可以自行配置上传文件的类型和过滤规则,且在d出的模态框中进行 *** 作,支持连续上传,分类选择上传
3.2 使用说明
这里只是使用说明,可能会加一些注意事项,具体参数或者变量说明请参看后面
3.2.1 页面添加一个指令
<web-uploader class="btn btn-info" type="image" accept="accept">uploader</web-uploader>
3.2.2 配置上传类型和过滤规则
上传类型
type有四种类型,分别为
image:图片
video:音视频
flash:flash
file:办公文档,压缩文件等等
过滤规则
accept有四个对象属性,属性中包含标题、允许文件后缀、允许的mimetype
3.2.3 指令中绑定d出模态框的事件
web-uploader这个指令中其实只做了一件事,给元素本身绑定d出模态框的事件,具体上传文件是在模态框中完成的
3.2.4 初始化uploader类,配置相关属性
在模态框控制器中用到了$timeout
$timeout(function(){
//这里是上传配置代码
},0)
因为配置uploader时需要事先准备好dom元素,angular打开模态框是异步而JavaScript是单线程,所以实际上在执行模态框控制器中的代码时,模态框并没有打开,也就是dom并没有加载完成,这会导致WebUploader报a.runningtime is not a function...的错误
3.3 指令详细说明
3.3.1 父级controller中的配置
.controller('myCtrl',['$scope', '$modal', function($scope, $modal){
//配置允许上传的类型 图片/音视频/flash/文件
$scope.accept = {
//图片
image: {
title : 'Images',//标题
extensions : 'gif,jpg,jpeg,bmp,png,ico',//允许上传文件的后缀
mimeTypes : 'image/*'//允许的mimetype
},
//音视频
video: {
title : 'Videos',
extensions : 'wmv,asf,asx,rm,rmvb,ram,avi,mpg,dat,mp4,mpeg,divx,m4v,mov,qt,flv,f4v,mp3,wav,aac,m4a,wma,ra,3gp,3g2,dv,vob,mkv,ts',
mimeTypes : 'video/*,audio/*'
},
//flash
flash: {
title : 'Flashs',
extensions : 'swf,fla',
mimeTypes : 'application/x-shockwave-flash'
},
//办公文档,压缩文件等等
file: {
title : 'Files',
extensions : 'zip,rar,ppt,pptx,doc,docx,xls,xlsx,pdf',
mimeTypes : 'application/zip,application/x-rar-compressed,application/vnd.ms-powerpoint,application/vnd.openxmlformats- officedocument.presentationml.presentation,application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document,application/vnd.ms- excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/pdf'
}
}
}])
3.3.2 指令web-uploader
.directive('webUploader', ['$modal', function($modal){
return{
restrict: 'AE',
scope: {
accept: '=accept'
},
link: function($scope, $element, $attr){
$element.bind('click',function(){
var modalInstance = $modal.open({
controller: 'modalCtrl',
templateUrl: 'template/webuploader.tpl.html',
size:'lg',
resolve: {
items: function(){
return {
accept: $scope.accept,
type: $attr.type
}
}
}
})
modalInstance.result.then(function(returnStatus){
console.log(returnStatus)
},function(){
console.log('Modal dismissed at: ' + new Date())
})
})
}
}
}])
批量输入信息 用FOR 循环设置表单(理论上是无限个) 在后台处理数据里面 也用FOR循环 names=request.form("names")(i) ----(i)必须加 <%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/htmlcharset=gb2312"><title>无标题文档</title></head><style type="text/css">BODY { CURSOR: url('p.ani')} </style><body ><% nums=request("nums") if nums=empty then nums=1 else if nums>20 then nums=20 end if end if %><div align="center"><form name="form2" method="post" action="">如果想同时输入N个数据,请设置数据的数目(最多20条):<br><input name="nums" type="text" id="nums2" size="10"><input type="submit" name="Submit" value="提交"></form></div><% for i=1 to nums %><table width="500" align="center" cellpadding="0" cellspacing="0"><form name="form1" method="post" action=4-1.asp?nums=<%=nums%>><tr><td><p align="center"> </p><p align="center">数据 <%=i%><br>姓名: <input name="names" type="text" id="names"><br>密码: <input name="pw" type="text" id="pw"><%next%></p><p align="center"><input type="submit" name="Submit2" value="提交"></p></td></tr></form></table></body></html>这个是表单页,你把代码生成页面看看 <% nums=request.QueryString("nums") for i=1 to nums names=request.Form("names")(i) if names=empty then response.Redirect("4.asp") end if response.End() pw=request.Form("pw")(i) sql="insert into stu1 (names,pw) values ('"&names&"','"&pw&"')" conn.execute (sql) next conn.close response.Write("数据成功录入,谢谢使用") response.Write "<a href=4.asp>返回继续</a>" %>这个是后台录入数据页 根据你自己的需要改动一下为了解决用户可能碰到关于"上传文件,html里的input type="file" 在苹果终端上不可用,显示为灰色。其他终端都正常"相关的问题,突袭网经过收集整理为用户提供相关的解决办法,请注意,解决办法仅供参考,不代表本网同意其意见,如有任何问题请与本网联系。"上传文件,html里的input type="file" 在苹果终端上不可用,显示为灰色。其他终端都正常"相关的详细问题如下:页面是jsp,后台是java。功能全部正常。就是在iphone,,ipad,ipod中,inputtype="file"显示为灰色,如果iphone用户访问网页的话,就不能选择文件,也不能上传文件(没文件选择)。我...页面是jsp,后台是java。功能全部正常。就是在iphone,,ipad,ipod中,input type="file"显示为灰色,如果iphone用户访问网页的话,就不能选择文件,也不能上传文件(没文件选择)。
我要的是:iphone用户访问网页,能上传文件。
回答方向:程序如何打开iphone相册,或者有iphone专用的消息头或标签之类可以选择本地文件,总之能选择文件,就OK,功能都正常,在电脑和安卓台都没有问题,唯独苹果的,无法选择文件。
我看了app里都是会出现点击某按钮,d出select,里面有 从相册选择和拍照。然后可以打开相册选取文件,或直接拍照上传。苹果的台肯定提供了这样的api可以调取本地的文件系统,和本地摄像头。只是不会弄而已。
看清楚再回答,混分的关闭问题也不给1分
谁能教会我的,积分10倍送上
如果篇幅太长可发链接地址,照样给分
如果能教会我 像app那样,可选文件,可拍找上传的,积分30送上感激不尽
最后,无手机网页或app开发经验的人士请勿回答!!展开
===突袭网收集的解决方案如下===
解决方案1:
我也碰到了
安卓正常, 用IPHONE4访问 , 文件上传控件无法点击
解决方案2:
没人回答,帮顶,我楼上的那个太没公德了
解决方案3:
<input id="fileElem1" pictype='30010003' data-role="none" type="file" name="idFile" accept="image/jpg,image/jpeg,image/png,image/gif" />需要支持HTML5,调用的是手机相机和图库,有问题的话追问吧本回答被网友采纳
解决方案4:
ios6以前的系统不支持input中的file
解决方案5:
每人看得起你那点分
html上传文件代码
答:html前端代码: 文件名: 如果是ubuntu上部署apache2,你应该是php开发者吧,action="upload-file.php" 中的upload-file.php改为你自己的后端php接收文件的逻辑代码即可! 这里提供upload-file.php后端接收文件的代码: 代码很简单,我相信你应该...
html点击buttond出选择文件,上传,这个怎么实现?
答: 从Excel中批量导入 //上传文件处理 var fileUpdate_button = document.getElementById("fileUpdate-button")var fileUpdate_input = document.getElementById("fileUpdate-input")var fileUpdate_form = document.getElementById("fileUpda...
HTML 网页中怎么上传图片到某个文件夹
答:上传至某个文件夹,预览是在前端完成的 此时还没有进行上传 *** 作,上传是需要后台提供接口的 可以通过form表单上传,后台通过php,java,asp等 接收form提交的文件存储到文件中返回文件的网址链接
html点击buttond出选择文件,上传,这个怎么实现
答: 其中样式在分别给每一个表单元素自定义class!
如何上传HTML文件到网页?
答:没装IIS的话,就不能通过FTP的形式上传了。但是却可以用文件共享的方法来访问服务器的。若是用FTP上传HTML文件,访问格式是 ftp://ip地址,如 ftp://192.168.0.1 ,如果ftp服务器权限设置OK的话,就应该能上传HTML文件的。 追问: 我晕 你那里找来...
怎么上传html文件
答:这个没特殊的方法: 首先要有FTP的账号密码等连接信息。 一般的网站空间商都会提供以保证程序安装数据备份等需要。 账号密码可以在空间管理后台面板获龋 连接方式,使用客户端软件,比如flashfxp就可以 打开客户端,填写IP,端口,账号,密码。...
html input标签 file类型,上传的具体是什么东西?
答:上传你选择的文件和相关信息。 在 HTML 文档中 标签每出现一次,一个 FileUpload 对象就会被创建。 该元素包含一个文本输入字段,用来输入文件名,还有一个按钮,用来打开文件选择对话框以便图形化选择文件。 该元素的 value 属性保存了用户指定...
html可以不使用form上传文件吗?
答:选好上传文件并填写相应信息才能上传 或是能过js控制,form1先通过ajax submit再让form2跳转 或是把值都取出来一起post到服务器等等方式
如何成功上传HTML文件
答:HTML中使用input type="file"上传文件时,代码中只能得到文件的名称,而有些特殊的需要要求得到上传文件的绝对路径,为此采用Javascript实现得到文件的绝对路径。 注意:要有enctype="multipart/form-data" Action代码: String filePath = requ...
html 表单上传图片
答:使用表单中的文件域()控件可以上传文件。 打开DreamWeaver,这里使用的版本是CS6,新建一个php文件。 保存到网站目录下,命名为upload.php。 在代码中插入一个表单 对话框中, *** 作留空,方法选择“post”,编码类型输入“multipart/form-data”,...
为您准备的相关内容:
html 中上传文件标签 <input type="file...把HTML5的手机网站嵌入安卓APP中,发现<input t...html写的type="file"的input怎么去掉默认提...html中表单里文本上传file,怎么让他在网页上只显示按钮...在HTML中 使用<input type=”file”上传...HTML 中的 <INPUT TYPE="FILE"/ 标...关于<input type="file" /的问题html中input type="file"怎么只限制一种文...
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)