php无刷新文件上传(原创)Codeigniter框架下测试
2012-12-10 15:14
363 查看
页面(upload.php):(红色加粗部分是重点)
<form id="upload_form" action="<?php echo site_url('welcome/upload');?>" method="post" enctype="multipart/form-data" target="iupload">
<input type="hidden" name="MAX_FILE_SIZE" value="102400"/>
<input type="file" name="attachment" id="attachment"/><br/>
<input type="button" value="上传" id="upload"/></p>
</form>
<iframe name="iupload" style="border:0;width:0px;height:0px;"></iframe>
上传信息:<span id="upload_info"></span>
注意:form表单的target必须和iframe的name对应,否则一切都无用
php处理:(需要两个函数)
处理文件上传
public function upload() {
if (!empty($_FILES)) {
$files = $_FILES['attachment'];
$tmp_name = $files['tmp_name'];
$file_name = $files['name'];
//$file_name = iconv('utf-8', 'gb2312', $files['name']);在utf8编码下可以防止中文乱码
if (move_uploaded_file($tmp_name, './upload/' . $file_name)) {
$this->session->set_userdata('state', 1);//将状态保存到session中
} else {
$this->session->set_userdata('state', 0);
}
}
}
获取状态
public function upload_state($state = 2) {
$state = $this->session->userdata('state');// 从session获取状态并输出
if ($state != 2) {
echo $state;
}
}
页面ajax代码(用到了jquery)
$(function() {
var start;
$('#upload').click(function() {
$('#upload_form').submit();
$('#upload_info').html('开始上传...');
start = setTimeout(us, 500);//设置一个计时器,隔一段时间请求上传状态
});
function us() {
var url = 'http://www.ci2.com/welcome/upload_state';
$.post(url, function(data) {
if (1 == data) {
$('#upload_info').html('上传成功');
clearTimeout(start);//获取状态后清除计时器
} else {
$('#upload_info').html('上传失败');
clearTimeout(start);
}
});
}
});
<form id="upload_form" action="<?php echo site_url('welcome/upload');?>" method="post" enctype="multipart/form-data" target="iupload">
<input type="hidden" name="MAX_FILE_SIZE" value="102400"/>
<input type="file" name="attachment" id="attachment"/><br/>
<input type="button" value="上传" id="upload"/></p>
</form>
<iframe name="iupload" style="border:0;width:0px;height:0px;"></iframe>
上传信息:<span id="upload_info"></span>
注意:form表单的target必须和iframe的name对应,否则一切都无用
php处理:(需要两个函数)
处理文件上传
public function upload() {
if (!empty($_FILES)) {
$files = $_FILES['attachment'];
$tmp_name = $files['tmp_name'];
$file_name = $files['name'];
//$file_name = iconv('utf-8', 'gb2312', $files['name']);在utf8编码下可以防止中文乱码
if (move_uploaded_file($tmp_name, './upload/' . $file_name)) {
$this->session->set_userdata('state', 1);//将状态保存到session中
} else {
$this->session->set_userdata('state', 0);
}
}
}
获取状态
public function upload_state($state = 2) {
$state = $this->session->userdata('state');// 从session获取状态并输出
if ($state != 2) {
echo $state;
}
}
页面ajax代码(用到了jquery)
$(function() {
var start;
$('#upload').click(function() {
$('#upload_form').submit();
$('#upload_info').html('开始上传...');
start = setTimeout(us, 500);//设置一个计时器,隔一段时间请求上传状态
});
function us() {
var url = 'http://www.ci2.com/welcome/upload_state';
$.post(url, function(data) {
if (1 == data) {
$('#upload_info').html('上传成功');
clearTimeout(start);//获取状态后清除计时器
} else {
$('#upload_info').html('上传失败');
clearTimeout(start);
}
});
}
});
相关文章推荐
- php无刷新利用iframe实现页面无刷新上传文件(1/2)
- CI框架源码阅读笔记4 引导文件CodeIgniter.php
- [PHP]框架CodeIgniter的简单测试源码
- php利用iframe实现无刷新文件上传功能
- 关于PHP+iFrame实现页面无需刷新的异步文件上传
- \t\t用strust框架提供的FormFile上传文件(原创)
- php+iframe实现隐藏无刷新上传文件
- php html5 文件上传 (原创)
- 原创ajax文件无刷新上传
- PHP文件上传学习(单文件,ajax无刷新方式)
- php ajax 无刷新文件上传源码下载
- 用strust框架提供的FormFile上传文件(原创)
- php iframe实现无刷新文件上传(无需ajax)
- PHP -- 模拟测试上传文件
- php kohana框架上传文件验证规则写法
- php上传zip文件在线解压文件在指定目录下,CI框架版本
- CI框架源码阅读笔记4 引导文件CodeIgniter.php
- 使用php技术实现无刷新的上传文件
- CI框架源码完全分析之核心文件Codeigniter.php
- 【ci框架】codeIgniter.php:系统初始化文件解读