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 ...
随机推荐
- ASP.NET Core 2.2 基础知识(七) 选项模式
承接上一篇 配置, 选项模式是专门用类来表示相关配置的服务. 基本选项配置 新建一个选项类,该类必须是包含无参数的构造函数的非抽象类. public class MyOptions { public ...
- Express下使用formidable实现POST表单上传文件并保存
Express下使用formidable实现POST表单上传文件并保存 在上一篇文章中使用formidable实现了上传文件,但没将它保存下来. 一开始,我也以为是只得到了文件的相关信息,需要用fs. ...
- Xshell连接VM中Ubuntu
摘要:终端输入ifconfig获取本地虚拟机的IP地址;安装openssh-serversudoapt-getinstallopenssh-server 查看server是否启动: ps-ef|gre ...
- python基础-文件处理与函数
1. 文件处理 1.1 文件处理流程 1.打开文件,得到文件句柄并赋值给一个变量 2.通过句柄对文件进行操作 3.关闭文件 1.2 文件读取模式r r文本模式的读,在文件不存在,不会创建新文件 f = ...
- 【MySQL笔记】Excel数据导入Mysql数据库的实现方法——Navicat
很多公司尤其有点年头的公司,财务业务部门的各种表单都是excel来做的表格,随着互联网的发展各种业务流程都电子化流程化了,再在茫茫多的文档中去查找某一个年份月份的报告是件相当枯燥的事,所以都在想办法将 ...
- 【Python笔记】Python语言基础
Python是一种解释性(没有编译).交互式.面向对象的语言 1.安装python编译器 版本:Python2.7比较普遍,Python不是向下兼容的软件,因此Python3.x有些东西不好找资料 2 ...
- spring+activity+mysql集群
第一步:先配置好第一个activityMQ 在broker外面加入数据库的连接信息,并将mysql的mysql-connector-java.jar,即java连接mysql的jar包放入apach ...
- WebApi单元测试记录
一.MessageHandler不一定是全局的,也可以只应用到指定的Router上 .定义一个handler // Pipelines HttpMessageHandler affiliateShip ...
- oracle 对应的JDBC驱动 版本
Oracle版本 jdk版本 推荐jar包 备注 Oracle 8i JDK 1.1.x classes111.zip Oracle 8i JDK 1.1.x classes12.zip Or ...
- Less使用说明
使用koala编译 Koala 是一款由国人开发的开源预处理语言图形编译工具,目前已支持 Less.Sass.Compass 与CoffeeScript. 目前支持以下系统:Windows,Mac, ...