最近被安排做一个拖拽上传和文件夹上传的功能,不考虑兼容性,哈哈这个可以用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 call
if (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有上传限制)
- 大小: 15.2 KB
分享到:
相关推荐
该组件基于 Vue.js 实现,UI 框架是 elementUI,完整的 demo 地址在https://github.com/Msxiaoma/upload-folder. 拖拽上传文件夹(仅仅chrome支持) 一、组件描述 同时拖拽多个文件夹 删除指定文件夹 显示当前文件夹...
拖放上传是HTML5引入的一种功能,使得用户可以直接从他们的文件系统拖动文件到浏览器窗口,然后由插件处理上传过程。这种技术极大地简化了用户操作,无需再通过传统的方式——点击按钮,浏览本地文件,然后再选择...
本文主要解决YApi不能上传文件的问题跨请求不支持文件上传Yapi测试集合不支持文件上传,导致测试用例无法运行解决cross-request不支持文件上传的问题chrome在73版本后,限制了content-script跨域请求。目前只有一个...
- **文件夹上传支持**:对于Chrome21+、Opera15+等版本的浏览器,支持整个文件夹的上传操作。 - **用户界面定制**:从版本1.4开始,支持用户自定义UI界面,进一步提升了使用的灵活性。 #### 快速上手指南 - **克隆...
在你提供的压缩包文件“html5upload”中,很可能是包含了一个实现这些功能的H5图片上传插件的源代码或者示例。通常,这样的文件夹会包含HTML文件用于展示插件的使用方式,JavaScript文件包含实际的插件代码,CSS文件...
要手动安装CRX文件,你可以直接将文件拖拽到扩展页面,或者在开发者模式下通过“加载已解压的扩展程序”来选择包含CRX文件的文件夹。 在提供的文件列表中,“Docs PDF_PowerPoint Viewer(由 Google 提供).crx”是...
Uploader 是一个功能强大且灵活的上传库,支持多并发上传、文件夹上传、拖拽上传、暂停续传、秒传、分块上传、出错自动重传、手工重传、进度、剩余时间、上传速度等特性。下面我们将详细介绍Uploader 的特性和使用...
6. **拖拽上传**:支持拖放操作,用户可以直接从桌面或文件夹中拖动文件到浏览器窗口进行上传。 7. **自定义界面**:FineUploader提供了高度可定制的界面,允许开发者根据自己的设计需求进行调整。 8. **服务器端...
这得益于其内部对HTML5 File API的深入利用,能够处理大文件分块上传,确保上传过程的稳定性和速度。 2. **图片排列顺序调整**:用户在上传过程中可以自由调整图片的展示顺序,这在创建图片集或者相册时非常实用。...
3. **上传文件**:将本地的网站文件拖拽至FTP工具的服务器窗口,开始上传过程。 4. **完成上传**:等待所有文件上传完毕后,在浏览器中输入域名或IP地址进行访问,确认网站已成功上线。 ### 四、JavaScript与广告...
5. 支持文件拖拽操作。 6. 支持自定义上传信息。 7. 快速编辑。旋转操作。 8. 显示上传进度。 9. 支持文件格式批量转换。 10. 支持打开默认文件夹功能。 11. 免费提供JavaScript SDK包,方便您将插件快速集成到已有...
5. 支持文件拖拽操作。 6. 支持自定义上传信息。 7. 快速编辑。旋转操作。 8. 显示上传进度。 9. 支持文件格式批量转换。 10. 支持打开默认文件夹功能。 11. 免费提供JavaScript SDK包,方便您将插件快速集成到已有...
6. **多图上传**:UEditor支持批量上传图片,用户可以通过选择文件或拖拽文件到指定区域来上传多张图片。我们需要确保服务器端有相应的处理程序接收并保存这些图片。 7. **权限控制**:根据织梦的权限体系,可能...
HTML5的拖放(Drag and Drop)API使得用户可以直接从桌面或其他应用拖拽文件到Web页面中。这些文件同样可以被保存到本地文件系统。 ```javascript document.addEventListener('drop', function(e) { e....
对于上传的文件大小限制,支持HTML5的现代浏览器(如Chrome、Firefox、搜狗高速浏览器等)没有上传文件大小上限,且支持批量上传、断点续传以及直接拖拽上传。然而,对于不支持HTML5的浏览器(如IE6至9、部分双核...
chrome支持文件夹拖拽上传。 [文件打开] office文件在线预览功能,服务器必须在公网(外部能访问该服务器) [忘记密码] 修改data/system/member.php 密码为明文的md5值 例如将admin密码重设为admin 则修改第一行:...
调试方法是通过将文件夹直接拖拽到Chrome浏览器上,然后访问“chrome://extensions/”页面进行查看。这提示我们,该扩展应用的源代码可能包含在提供的压缩包中,用户可以自行查看和修改代码以进行调试或定制。 **...
- **插件扩展**: 它支持丰富的插件扩展,可以增加如图片上传、视频嵌入、表格编辑等功能。 - **样式系统**: 提供了一套完整的样式系统,帮助保持文本的一致性和专业外观。 - **兼容性**: 兼容多种浏览器,包括...
2. **拖拽上传**:集成文件上传功能,用户可以通过拖拽或点击按钮轻松上传图片、文档等文件到服务器,提高了工作效率。 3. **代码模式**:除了可视化编辑,KindEditor还提供了源代码编辑模式,方便开发者直接进行...
它会接收用户通过eWebEditor 上传的文件,进行合法性检查、存储路径设定、文件名重命名等操作,确保上传的文件能正确保存到服务器。 - **ewebeditor.php**: 主编辑器脚本,包含了编辑器的初始化、事件处理、功能...