Linking

Capturing Life & Tech

  • 主页
  • 随笔
  • 关于我
所有文章 外链

Linking

Capturing Life & Tech

  • 主页
  • 随笔
  • 关于我

HTML5与Ajax上传文件

阅读数:次 2016-03-01
字数统计: 497字   |   阅读时长≈ 2分

iframe伪装,jQuery-uploaded-file插件

前台代码

1
2
3
4
5
6
7
8
<div>
<h1>iframe模拟ajax上传文件效果</h1>
<h2></h2>
<form action='11-up.php' method='post' enctype='multipart/form-data' onsubmit='return ajaxUpload();'>
<p><input type='file' name='pic' /></p>
<p><input type='submit' value='提交' /></p>
</form>
</div>

js代码

1
2
3
4
5
6
7
8
9
10
11
12
/*
分析:
1. 捕捉表单提交动作(onsubmit="return ajaxUpload()")
2. 创建iframe(jQuery直接创建$('<iframe></iframe>'))
3. 把表单的target修改指向该iframe(target='framename')
4. 去掉这个iframe()
*/
function ajaxUpload(){
var ifname = 'up' + Math.random();
$('<iframe name="'+ ifname +'" width="0" height="0" frameBorder="0"></iframe>').appendTo($('body'));
$('form:first').attr('target', ifname);
}

PHP代码

1
2
3
4
5
6
7
if(empty($_FILES)){
exit('no file');
}

$error = $_FILES['pic']['error'] == 0 ? 'succ' : 'fail';

echo "<script>parent.document.getElementsByTagName('h2')[0].innerHTML = '$error'</script>";

HTML5 Files API

files API Formdata
前台代码:

1
<input type='file' name='pic' onchange='selfile();' />

js代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
function selfile(){
//表单数据容器
var fd = new FormData();
//获取文件,文件列表`files`属性
var pic = document.getElementsByTagName('input')[0].files[0];
//附加数据到表单容器中
fd.append('pic', pic);

var xhr = new XMLHttpRequest();
xhr.open('POST', './13-upfile.php', true);

xhr.onreadystatechange = function(){
if(this.readyState == 4){
document.getElementById('debug').innerHTML = this.responseText;
}
}
xhr.send();
}

PHP代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php 

// print_r($_FILES);

// sleep(3);

if(empty($_FILES)){
exit('no file');
}

if ($_FILES['pic']['error']!=0) {
exit('fail');
}

move_uploaded_file($_FILES['pic']['tmp_name'], 'upload/'.$_FILES['pic']['name']);

echo "ok";
?>

这里还只是用到了HTML5的文件上传API基础,有很多新特性值得花时间研究。
而我现在最缺的就是时间,论文需要加快速度。
后面还有找工作的事情,毕业季来了啊!!

蛋定!!!

  • 本文作者: Linking
  • 本文链接: https://linking.fun/2016/03/01/HTML5与Ajax上传文件/
  • 版权声明: 版权所有,转载请注明出处!
  • Ajax
  • HTML5
  • cs

扫一扫,分享到微信

进度条
Ajax系列三-探讨XHR及POST数据
  1. 1. iframe伪装,jQuery-uploaded-file插件
  2. 2. HTML5 Files API
© 2015-2026 Linking
GitHub:hexo-theme-yilia-plus by Litten
本站总访问量次 | 本站访客数人
  • 所有文章
  • 外链

tag:

  • weather
  • 需求
  • essay
  • basketball
  • olympic
  • nginx
  • APPScan
  • SQl盲注
  • xss
  • Ajax
  • ajax
  • ai
  • agent
  • openclaw
  • ccf
  • Nginx
  • HTML5
  • html5
  • hmtl5
  • sse
  • JavaScriptCore
  • Oracle
  • operation
  • Linux
  • deploy
  • Mac Office
  • markdown
  • ListView
  • GridView
  • MySQL
  • 慢查询
  • mongodb
  • 转置
  • thought
  • network
  • ubuntu
  • NetworkManager
  • RFKill
  • Netplan
  • avatar
  • cocoa
  • blog
  • Gitalk
  • container
  • macvlan
  • docker
  • oracle
  • cookie
  • patch
  • gitea
  • git
  • iOS
  • https
  • 多线程
  • bundle
  • 兼容性
  • HTTP
  • 绘图
  • cs
  • java
  • 效率
  • 快捷键
  • route
  • nodejs
  • pip
  • arcgis
  • arcgis 建模
  • 标识
  • redis
  • read
  • bookList
  • running
  • showdoc
  • disk
  • unit-test
  • D.Wade
  • thoughts
  • duoduo
  • Python
  • python
  • tomcat
  • 读书节
  • session
  • jdk
  • war
  • 加班
  • Android onclick事件监听
  • 正则
  • 手机品牌匹配
  • ntp
  • OpenLayers
  • Geoserver
  • wechat
  • 微信公众号
  • 爬虫
  • WeChat
  • 张靓颖
  • 动漫
  • vpn
  • PPT
  • MarkDown
  • plan
  • 朱赟
  • 极客时间专栏
  • 极客邦
  • 模块化
  • MVC
  • excel
  • NBA
  • kobe
  • team
  • crawler
  • 进度条
  • ssl
  • book
  • anti-stealing-link
  • Agentic Engineering
  • Vibe Coding
  • Software 3.0
  • Andrej Karpathy
  • LLM
  • Programming

    缺失模块。
    1、请确保node版本大于6.2
    2、在博客根目录(注意不是yilia-plus根目录)执行以下命令:
    npm i hexo-generator-json-content --save

    3、在根目录_config.yml里添加配置:

      jsonContent:
        meta: false
        pages: false
        posts:
          title: true
          date: true
          path: true
          text: false
          raw: false
          content: false
          slug: false
          updated: false
          comments: false
          link: false
          permalink: false
          excerpt: false
          categories: false
          tags: true
    

  • GitHub Trending
  • OpenAI ChatGPT
  • Gitee码云
  • 简书
  • CSDN