Atitit 文件上传 架构设计 实现机制 解决方案 实践java php c#.net js javascript c++ python
1 . 上传的几点要求 2
1 .1. 本地预览 2
1 .2. 2 无刷新 2
1 .3. 3 进度显示 2
1 .4. 断点续传 2
1 .5. 跨 bs cs 2
1 .6. 带进度条 2
1 .7. 完成提示动画效果 .. 2
2 . 标准化 api 属性 2
3 . 实现原理 利用 FormData 对象,你可以使用一系列的键值对来模拟一个完整的表单,然后使用 XMLHttpRequest 发送这个"表单". 3
4 . 如果需要显示进度条,实时显示文件上传进度 需要使用Ajaxj技术 ..up到个在的iframe黑头.. 工作原理 其实际就是在处理上传文件的同时,将上传进度的信息例如文件总长吨,已经上传多少,传输速率写入session中,客户端游览器 利用Ajax技术再新开一个独立的进程从session中获取上传进度信息,并实时显示,Ajax技术能够 不刷新页面获取服务器数据。session 可看做是服务器内存,可以用于存放少量的客户信息。 3
5 . Php 的实现 4
5 .1. Java 与 php 的不同点 4
6 . AtiUpload 5
7 . 参考 5
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 属性
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 的实现
这个临时的复制文件会在脚本结束时消失。要保存被上传的文件,我们需要把它拷贝到另外的位置:
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
7. 参考
atitit.ajax 上传文件的实现原理 与设计 - attilax 的专栏 - 博客频道 - CSDN.NET.htm
atitit.jquery ajax html5 上传图片 文件