设为首页
优惠IDC
收藏本站
六狼博客
六狼论坛
开启辅助访问
切换到窄版
用户名
Email
自动登录
找回密码
密码
登录
立即注册
只需一步,快速开始
只需一步,快速开始
快捷导航
门户
首页
BBS
云计算
大数据
手机
移动开发android,ios,windows phone,windows mobile
编程
编程技术java,php,python,delphi,ruby,c,c++
前端
WEB前端htmlcss,javascript,jquery,html5
数据库
数据库开发Access,mysql,oracle,sql server,MongoDB
系统
操作系统windows,linux,unix,os,RedHat,tomcat
架构
项目管理
软件设计,架构设计,面向对象,设计模式,项目管理
企业
服务
运维实战
神马
搜索
搜索
热搜:
php
java
python
ruby
hadoop
sphinx
solr
ios
android
windows
centos
本版
帖子
用户
六狼论坛
»
首页
›
WEB前端
›
HTML5
›
HTML5拖拽上传文件,chrome文件夹上传
返回列表
查看:
161
|
回复:
0
HTML5拖拽上传文件,chrome文件夹上传
[复制链接]
xiaoshenge
xiaoshenge
当前离线
积分
86
窥视卡
雷达卡
升级
24%
当前用户组为
秀才
当前积分为
86
, 升到下一级还需要 114 点。
22
主题
22
主题
22
主题
秀才
秀才, 积分 86, 距离下一级还需 114 积分
秀才, 积分 86, 距离下一级还需 114 积分
积分
86
发消息
楼主
|
发表于 2013-1-24 06:37:17
|
显示全部楼层
|
阅读模式
最近被安排做一个拖拽上传和文件夹上传的功能,不考虑兼容性,哈哈这个可以用HTML5实现。这里就不仔细学习HTML5,我只是想找例子,然后偷过来用,至于原理边用边学。
首先这里有一个很好的实例实现拖拽上传:
http://blogs.sitepointstatic.com/examples/tech/filedrag/1/index.html
仔细看完估计原理你也会懂的。
然后是文件夹上传这里也有一个很好的实例:
http://sapphion.com/2011/11/html5-folder-upload-with-webkitdirectory/
这里文件夹上传只能在chrome11以后使用。
可是并不是那么一帆风顺,故事发生了:
文件夹上传的时候,如果文件夹内还有文件夹上面的那个例子就不能运行了,同时也不能保持目录结构。
js的方便就在于调试方便,更有利器console.log(obj).下面的内容是在仔细看了上面两个实例的基础上:
在第一个例子中有一个函数ParseFile,我在里面加了一个console.log(file),然后再chrome下面看到如下调试信息:
有了这个路径属性,我就可用在ajax中把次属性当做参数,用于保存目录结构。
xhr.open("POST", "upload.php?fname="+file.webkitRelativePath, true);然后upload.php添加处理函数:
function createFolder($path) { if (!file_exists($path)) { createFolder(dirname($path)); mkdir($path,0777); }}$fn = (isset($_SERVER['HTTP_X_FILENAME']) ? $_SERVER['HTTP_X_FILENAME'] : false); $fname = $_GET['fname']; if ($fname!=''&& $fname!='undefined') { createFolder('uploads/'.dirname($fname)); $targetfile = 'uploads/' . $fname; }else{ $targetfile = 'uploads/'.$fn; }// AJAX callif (file_put_contents($targetfile,file_get_contents('php://input'))){ echo "ok";}else{ echo "failed";}
于是解决了多次文件夹上传的功能。
-----------------------------------------------
代码依次是:实例1(拖拽上传),实例2(文件夹上传),修改后的多层文件夹上传(细节请包容),
体验HTML5的魅力请参考:
http://html5-demos.appspot.com/
http://html5-demos.appspot.com/static/html5storage/demos/upload_directory/index.html
最新代码请查看
https://github.com/xiaoshenge/html5demo
http://html5file.sinaapp.com/
(效果演示,由于sae有上传限制)
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
显身卡
返回列表
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖后跳转到最后一页
Copyright © 2008-2020
六狼论坛
(https://it.6wolf.com) 版权所有 All Rights Reserved.
Powered by
Discuz!
X3.4
京ICP备14020293号-2
本网站内容均收集于互联网,如有问题请联系
QQ:389897944
予以删除
快速回复
返回顶部
返回列表