Atitit 文件上传 架构设计 实现机制 解决方案 实践java php c#.net js javascript c++ python
Atitit 文件上传 架构设计 实现机制 解决方案 实践java php c#.net js javascript c++ python
3. 实现原理利用FormData对象,你可以使用一系列的键值对来模拟一个完整的表单,然后使用XMLHttpRequest发送这个"表单".3
1. 上传的几点要求
1.1. 本地预览
1.2. 2 无刷新
1.3. 3 进度显示
1.4. 断点续传
1.5. 跨bs cs
1.6. 带进度条
1.7. 完成提示动画效果..
作者:: 绰号:老哇的爪子 ( 全名::Attilax akbar al rapanui 阿提拉克斯 阿克巴 阿尔 拉帕努伊 ) 汉字名:艾龙, EMAIL:1466519819@qq.com
转载请注明来源: http://www.cnblogs.com/attilax/
2. 标准化api属性
<iframe id="upIfrm" src="../com.attilax/upload/up.jsp?fld=${COLUMN_NAME}" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" style="width:100%; height:100px"></iframe>
Fld指定回填的textbox名称
callbackQ11默认回答函数
Callback 指定回调函数
3. 实现原理利用FormData对象,你可以使用一系列的键值对来模拟一个完整的表单,然后使用XMLHttpRequest发送这个"表单".
这个是XMLHttpRequest 2.0提供的一个类
你还可以使用jQuery来发送FormData,但必须要正确的设置相关选项:
4. 如果需要显示进度条,实时显示文件上传进度
需要使用Ajaxj技术..up到个在的iframe黑头..
工作原理
其实际就是在处理上传文件的同时,将上传进度的信息例如文件总长吨,已经上传多少,传输速率写入session中,客户端游览器
利用Ajax技术再新开一个独立的进程从session中获取上传进度信息,并实时显示,Ajax技术能够 不刷新页面获取服务器数据。session
可看做是服务器内存,可以用于存放少量的客户信息。
上传监听器
commons-fileupload版1.2支持上传监听,只需要实现一个监听器,并把它添加到上传组件上即可。监听器需要实现它的progresslistener
5. Php的实现
这个临时的复制文件会在脚本结束时消失。要保存被上传的文件,我们需要把它拷贝到另外的位置:
<?php
if (isset($_POST['upload'])) {
var_dump($_FILES);
////第三个参数是“true”表示能创建多级目录,iconv防止中文目录乱码
//$res=mkdir(iconv("UTF-8", "GBK", $path),0777,true);
$f=dirname(__FILE__).'/up_tmpx2/'.time().'.jpg';
mkdir(dirname( $f),0777,true); move_uploaded_file($_FILES['upfile']['tmp_name'], $f);
//header('location: test.php');
exit;
5.1. Java与php的不同点
Php需要move内存文件到临时文件
Jva的直接stream写入
6. AtiUpload
<iframe id="upIfrm" src="../com.attilax/upload/up.jsp?fld=${COLUMN_NAME}" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" style="width:100%; height:100px"></iframe>
7. 参考
atitit.ajax上传文件的实现原理 与设计 - attilax的专栏 - 博客频道 - CSDN.NET.htm
atitit.jquery ajax html5上传图片 文件
Atitit 文件上传 架构设计 实现机制 解决方案 实践java php c#.net js javascript c++ python的更多相关文章
- atitit. 文件上传带进度条 atiUP 设计 java c# php
atitit. 文件上传带进度条 atiUP 设计 java c# php 1. 设计要求 1 2. 原理and 架构 1 3. ui 2 4. spring mvc 2 5. springMVC.x ...
- Atitit..文件上传组件选型and最佳实践总结(3)----断点续传控件的实现
Atitit..文件上传组件选型and最佳实践总结(3)----断点续传控件的实现 1. 实现思路:::元插件,元设置... 1 2. 实现流程downzip,unzip,exec 1 3. Zip ...
- Atitit..文件上传组件选型and最佳实践总结(2)----断点续传
Atitit..文件上传组件选型and最佳实践总结(2)----断点续传 1. 断点续传的原理 1 2. 如何判断一个插件/控件是否支持断点续传?? 1 3. 常用的组件选型结果::马 1 4. 自定 ...
- atitit.文件上传带进度条的实现原理and组件选型and最佳实践总结O7
atitit.文件上传带进度条的实现原理and组件选型and最佳实践总结O7 1. 实现原理 1 2. 大的文件上传原理::使用applet 1 3. 新的bp 2 1. 性能提升---分割小文件上传 ...
- Atitit..文件上传组件选择and最佳实践的总结(2)----HTTP
Atitit..文件上传组件选型and最佳实践总结(2)----断点续传 1. 断点续传的原理 1 2. 怎样推断一个插件/控件是否支持断点续传?? 1 3. 经常使用的组件选型结果::马 1 4. ...
- Atitit. servlet 与 IHttpHandler ashx listen 和HttpModule的区别与联系 原理理论 架构设计 实现机制 java php c#.net js javascript c++ python
Atitit. servlet 与 IHttpHandler ashx listen 和HttpModule的区别与联系 原理理论 架构设计 实现机制 java php c#.net j ...
- Java中实现文件上传下载的三种解决方案
第一点:Java代码实现文件上传 FormFile file=manform.getFile(); String newfileName = null; String newpathname=null ...
- 超大文件上传到Azure Linux虚拟机最佳实践
客户在实际进行迁移的时候,往往碰到需要将本地数据中心的超大文件,比如单个200GB的文件,或者总共1TB的无数文件上传到Azure上的情况,尤其是传到Azure的Linux虚拟机的场景,这种场景包括: ...
- 图片按钮来代替文件上传控件(Freemaker,JQuery,HTML,CSS,JavaScript)
CSS样式: <style type="text/css"> .fileInputContainer{ height:70px; width:95px; positio ...
随机推荐
- 母亲的牛奶(milk) (BFS)
问题 A: 母亲的牛奶(milk) 时间限制: 1 Sec 内存限制: 64 MB提交: 14 解决: 8[提交][状态][讨论版] 题目描述 农民约翰有三个容量分别是A.B.C升的桶,A.B.C ...
- 【最近公共祖先】【树链剖分】CODEVS 1036 商务旅行
树链剖分求lca模板.O(log(n)),就是不倍增嘛~ #include<cstdio> #include<algorithm> using namespace std; # ...
- 零基础带你看Spring源码——IOC控制反转
本章开始来学习下Spring的源码,看看Spring框架最核心.最常用的功能是怎么实现的. 网上介绍Spring,说源码的文章,大多数都是生搬硬推,都是直接看来的观点换个描述就放出来.这并不能说有问题 ...
- Python的hashlib
Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等. 什么是摘要算法呢?摘要算法又称哈希算法.散列算法.它通过一个函数,把任意长度的数据转换为一个长度固定的数据串(通常用16进制 ...
- SQL SERVER 常用命令
红色为常用 0.row_number() over 和数据组合sale/cnt select *,row_number() over(order by productname) as rownumbe ...
- Delphi制作软键盘
{ 作者: han 日期: 2006.06.02 } unit softkey; interface uses Windows, Messages, SysUtils, Variants, C ...
- iOS开发学习 阶段过程简述
下面就简单介绍一下我iOS开发的感受,也是学习iOS开发的一个体系架构. 1 iOS开发环境 1.1 开发环境 标准的配置是Mac OS X + Xcode. MacOSX的话首选用苹果电脑,macm ...
- 针对WebLogic Server 12.1.3版本打补丁
先去下载补丁文件,在链接 https://support.oracle.com/epmos/faces/DocumentDisplay?_afrLoop=179118524484876&id= ...
- react项目如何调试?
进入到相应的网页界面,然后查看Sources->Page->top->webpack://->找到react的js代码处,设置断点,进行调试
- sqlmap批量扫描burpsuite拦截的日志记录
1.功能上,sqlmap具备对burpsuite拦截的request日志进行批量扫描的能力 python sqlmap.py -l hermes.log --batch -v 3 --batch:会自 ...