php 利用iframe实现无刷新文件上传功能
<html>
<head>
<title>无刷新上传文件</title>
<meta Content-type="text/html" charset="utf-8" />
<script type="text/网页特效">
function startUpload() {
document.getElementById('processing').innerHTML = 'loding...';
return true;
}
function stopUpload(rel){
var msg;
switch (rel) {
case 0:
msg = "上传成功";
break;
case 1:
msg = "上传的文件超过限制";
break;
case 2:
msg = "只能上传图片文件";
break;
default:
msg = "上传文件失败";
}
document.getElementById('processing').innerHTML = msg;
}
</script>
</head>
<body>
<div style="text-align:center">
<div id="processing"></div>
<form action="upload.php教程" method="post" enctype="multipart/form-data" target="form-target" onsubmit="startUpload();">
<input type="hidden" name="MAX_FILE_SIZE" value="1000000" />
<input type="file" name="myfile" />
<input type="submit" name="sub" value="upload" />
</form>
<iframe style="width:0; height:0; border:0;" name="form-target"></iframe>
</div>
</body>
</html>
php代码
一款联动菜单,利用了js php mysql实现的无刷新效果,有需要的朋友可以直接下载哦。<?php
sleep(2);
$fileTypes = array('jpg','png','gif','bmp');
$result = null;
$uploadDir = './upfiles';
$maxSize = 1 * pow(2,20);
if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['sub'])) {
$myfile = $_FILES['myfile'];
$myfileType = substr($myfile['name'], strrpos($myfile['name'], ".") + 1);
if ($myfile['size'] > $maxSize) {
$result = 1;
} else if (!in_array($myfileType, $fileTypes)) {
$result = 2;
} elseif (is_uploaded_file($myfile['tmp_name'])) {
$toFile = $uploadDir . '/' . $myfile['name'];
if (@move_uploaded_file($myfile['tmp_name'], $toFile)) {
$result = 0;
} else {
$result = -1;
}
} else {
$result = 1;
}
}
?>
<script type="text/javascript">
window.top.window.stopUpload(<?php echo $result; ?>);
</script>
代码如下 | 复制代码 |
<script language="JavaScript" type="text/网页特效">
$sql="select * from ptypes where sid = 0 and ssid =0"; <select name="province" id="province" onchange="if(this.value != '') setCity(this.options[this.selectedIndex].value);"> <select name="ssid" id="ssid"> |
里面有各种大家开发中常用到的种编码如uft8->gbk gbk转utf8 繁体转简体 简体转繁体 utf8转unicode gbk转拼音 Ascii转拼音 等
<?php教程
/**
* utf8转gbk
* @param $utfstr
*/
function utf8_to_gbk($utfstr) {
global $UC2GBTABLE;
$okstr = '';
if(empty($UC2GBTABLE)) {
$filename = CODETABLEDIR.'gb-unicode.table';
$fp = fopen($filename, 'rb');
while($l = fgets($fp,15)) {
$UC2GBTABLE[hexdec(substr($l, 7, 6))] = hexdec(substr($l, 0, 6));
}
fclose($fp);
}
$okstr = '';
$ulen = strlen($utfstr);
for($i=0; $i<$ulen; $i++) {
$c = $utfstr[$i];
$cb = decbin(ord($utfstr[$i]));
if(strlen($cb)==8) {
$csize = strpos(decbin(ord($cb)),'0');
for($j = 0; $j < $csize; $j++) {
$i++;
$c .= $utfstr[$i];
}
$c = utf8_to_unicode($c);
if(isset($UC2GBTABLE[$c])) {
$c = dechex($UC2GBTABLE[$c]+0x8080);
$okstr .= chr(hexdec($c[0].$c[1])).chr(hexdec($c[2].$c[3]));
} else {
$okstr .= '&#'.$c.';';
}
} else {
$okstr .= $c;
}
}
$okstr = trim($okstr);
return $okstr;
}
/**
* gbk转utf8
* @param $gbstr
*/
function gbk_to_utf8($gbstr) {
global $CODETABLE;
if(empty($CODETABLE)) {
$filename = CODETABLEDIR.'gb-unicode.table';
$fp = fopen($filename, 'rb');
while($l = fgets($fp,15)) {
$CODETABLE[hexdec(substr($l, 0, 6))] = substr($l, 7, 6);
}
fclose($fp);
}
$ret = '';
$utf8 = '';
while($gbstr) {
if(ord(substr($gbstr, 0, 1)) > 0x80) {
$thisW = substr($gbstr, 0, 2);
$gbstr = substr($gbstr, 2, strlen($gbstr));
$utf8 = '';
@$utf8 = unicode_to_utf8(hexdec($CODETABLE[hexdec(bin2hex($thisW)) - 0x8080]));
if($utf8 != '') {
for($i = 0; $i < strlen($utf8); $i += 3) $ret .= chr(substr($utf8, $i, 3));
}
} else {
$ret .= substr($gbstr, 0, 1);
$gbstr = substr($gbstr, 1, strlen($gbstr));
}
}
return $ret;
}
/**
* 繁体转简体
* @param $Text
*/
function big5_to_gbk($Text) {
global $BIG5_DATA;
if(empty($BIG5_DATA)) {
$filename = CODETABLEDIR.'big5-gb.table';
$fp = fopen($filename, 'rb');
$BIG5_DATA = fread($fp, filesize($filename));
fclose($fp);
}
$max = strlen($Text)-1;
for($i = 0; $i < $max; $i++) {
$h = ord($Text[$i]);
if($h >= 0x80) {
$l = ord($Text[$i+1]);
if($h==161 && $l==64) {
$gbstr = ' ';
} else {
$p = ($h-160)*510+($l-1)*2;
$gbstr = $BIG5_DATA[$p].$BIG5_DATA[$p+1];
}
$Text[$i] = $gbstr[0];
$Text[$i+1] = $gbstr[1];
$i++;
}
}
return $Text;
}
/**
* 简体转繁体
* @param $Text
*/
function gbk_to_big5($Text) {
global $GB_DATA;
if(empty($GB_DATA)) {
$filename = CODETABLEDIR.'gb-big5.table';
$fp = fopen($filename, 'rb');
$gb = fread($fp, filesize($filename));
fclose($fp);
}
$max = strlen($Text)-1;
for($i = 0; $i < $max; $i++) {
$h = ord($Text[$i]);
if($h >= 0x80) {
$l = ord($Text[$i+1]);
if($h==161 && $l==64) {
$big = ' ';
} else {
$p = ($h-160)*510+($l-1)*2;
$big = $GB_DATA[$p].$GB_DATA[$p+1];
}
$Text[$i] = $big[0];
$Text[$i+1] = $big[1];
$i++;
}
}
return $Text;
}
/**
* unicode转utf8
* @param $c
*/
function unicode_to_utf8($c) {
$str = '';
if($c < 0x80) {
$str .= $c;
} elseif($c < 0x800) {
$str .= (0xC0 | $c >> 6);
$str .= (0x80 | $c & 0x3F);
} elseif($c < 0x10000) {
$str .= (0xE0 | $c >> 12);
$str .= (0x80 | $c >> 6 & 0x3F);
$str .= (0x80 | $c & 0x3F);
} elseif($c < 0x200000) {
$str .= (0xF0 | $c >> 18);
$str .= (0x80 | $c >> 12 & 0x3F);
$str .= (0x80 | $c >> 6 & 0x3F);
$str .= (0x80 | $c & 0x3F);
}
return $str;
}
/**
* utf8转unicode
* @param $c
*/
function utf8_to_unicode($c) {
switch(strlen($c)) {
case 1:
return ord($c);
case 2:
$n = (ord($c[0]) & 0x3f) << 6;
$n += ord($c[1]) & 0x3f;
return $n;
case 3:
$n = (ord($c[0]) & 0x1f) << 12;
$n += (ord($c[1]) & 0x3f) << 6;
$n += ord($c[2]) & 0x3f;
return $n;
case 4:
$n = (ord($c[0]) & 0x0f) << 18;
$n += (ord($c[1]) & 0x3f) << 12;
$n += (ord($c[2]) & 0x3f) << 6;
$n += ord($c[3]) & 0x3f;
return $n;
}
}/**
* Ascii转拼音
* @param $asc
* @param $pyarr
*/
function asc_to_pinyin($asc,&$pyarr) {
if($asc < 128)return chr($asc);
elseif(isset($pyarr[$asc]))return $pyarr[$asc];
else {
foreach($pyarr as $id => $p) {
if($id >= $asc)return $p;
}
}
}
/**
* gbk转拼音
* @param $txt
*/
function gbk_to_pinyin($txt) {
if(CHARSET != 'gbk') {
$txt = iconv(CHARSET,'GBK',$txt);
}
$l = strlen($txt);
$i = 0;
$pyarr = array();
$py = array();
$filename = CODETABLEDIR.'gb-pinyin.table';
$fp = fopen($filename,'r');
while(!feof($fp)) {
$p = explode("-",fgets($fp,32));
$pyarr[intval($p[1])] = trim($p[0]);
}
fclose($fp);
ksort($pyarr);
while($i<$l) {
$tmp = ord($txt[$i]);
if($tmp>=128) {
$asc = abs($tmp*256+ord($txt[$i+1])-65536);
$i = $i+1;
} else $asc = $tmp;
$py[] = asc_to_pinyin($asc,$pyarr);
$i++;
}
return $py;
}
?>
下面举了二个实现来告诉你如何过滤重复的内容,有需要的朋友可以参考
foreach($arr as $value){
if(!empty($value)){
$strs=strstr($value,"新闻");
}
}
输出:新闻 新闻
直接用array_unique 函数就可以了。
$string= '数组aabbccdd';
function str_split_utf8($str) {
$split=1;
$array = array();
for ( $i=0; $i < strlen( $str ); ){
$value = ord($str[$i]);
if($value > 127){
if($value >= 192 && $value <= 223)
$split=2;
elseif($value >= 224 && $value <= 239)
$split=3;
elseif($value >= 240 && $value <= 247)
$split=4;
}else{
$split=1;
}
$key = NULL;
for ( $j = 0; $j < $split; $j++, $i++ ) {
$key .= $str[$i];
}
array_push( $array, $key );
}
return $array;
}
print_r(array_unique(str_split_utf8($string)));
这里有篇参考文章
php教程er/21/899e11a21ae817a97d3ce64f851ab9f6.htm">http://www.111cn.net/phper/21/899e11a21ae817a97d3ce64f851ab9f6.htm
这段代码来自php教程cms觉得很好,所以拿出来分享给大家,有需要的朋友可以参考一下。
/**
* 文件扫描
* @param $filepath 目录
* @param $subdir 是否搜索子目录
* @param $ex 搜索扩展
* @param $isdir 是否只搜索目录
* @param $md5 是否生成MD5验证码
* @param $enforcement 强制更新缓存
*/
function scan_file_lists($filepath, $subdir = 1, $ex = '', $isdir = 0, $md5 = 0, $enforcement = 0) {
static $file_list = array();
if ($enforcement) $file_list = array();
$flags = $isdir ? GLOB_ONLYDIR : 0;
$list = glob($filepath.'*'.(!empty($ex) && empty($subdir) ? '.'.$ex : ''), $flags);
if (!empty($ex)) $ex_num = strlen($ex);
foreach ($list as $k=>$v) {
$v1 = str_replace(PHPCMS_PATH, '', $v);
if ($subdir && is_dir($v)) {
scan_file_lists($v.DIRECTORY_SEPARATOR, $subdir, $ex, $isdir, $md5);
continue;
}
if (!empty($ex) && strtolower(substr($v, -$ex_num, $ex_num)) == $ex) {
if ($md5) {
$file_list[$v1] = md5_file($v);
} else {
$file_list[] = $v1;
}
continue;
} elseif (!empty($ex) && strtolower(substr($v, -$ex_num, $ex_num)) != $ex) {
unset($list[$k]);
continue;
}
}
return $file_list;
}
相关文章
php无刷新利用iframe实现页面无刷新上传文件(1/2)
利用form表单的target属性和iframe 一、上传文件的一个php教程方法。 该方法接受一个$file参数,该参数为从客户端获取的$_files变量,返回重新命名后的文件名,如果上传失...2016-11-25- 本文章来人大家介绍一个php文件上传类的使用方法,期望此实例对各位php入门者会有不小帮助哦。 简介 Class.upload.php是用于管理上传文件的php文件上传类, 它可以帮...2016-11-25
- 又码了一个周末的代码,这次在做一些关于文件上传的东西。(PHP UPLOAD)小有收获项目是一个BT种子列表,用户有权限上传自己的种子,然后配合BT TRACK服务器把种子的信息写出来...2016-11-25
- 本文实例讲述了jQuery实现文件上传进度条效果的代码。分享给大家供大家参考。具体如下: 运行效果截图如下:具体代码如下:<!DOCTYPE html><html><head><meta charset="utf-8"><title>upload</title><link rel="stylesheet...2015-11-24
jQuery+PHP发布的内容进行无刷新分页(Fckeditor)
这篇文章将使用jQuery,并结合PHP,将Fckeditor发布的内容进行分页,并且实现无刷新切换页面。 本文假设你是WEB开发人员,掌握了jQuery和PHP相关知识,并且熟知Fckeditor的配置和使用。...2015-10-23- 本篇文章主要说明的是与php文件上传的相关配置的知识点。PHP文件上传功能配置主要涉及php.ini配置文件中的upload_tmp_dir、upload_max_filesize、post_max_size等选项,下面一一说明。打开php.ini配置文件找到File Upl...2015-10-21
- 这篇文章主要介绍了基于jquery实现表格无刷新分页,功能实现了前端排序功能,增加了前端搜索功能,感兴趣的小伙伴们可以参考一下...2016-01-08
借助FileReader实现将文件编码为Base64后通过AJAX上传
这篇文章主要介绍了借助FileReader实现将文件编码为Base64后通过AJAX上传的方法,包括后端对文件数据解码并保存的PHP代码,需要的朋友可以参考下...2015-12-25- 这篇文章主要为大家详细介绍了js实现上传文件添加和删除文件选择框 ,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2016-10-25
- 这篇文章主要介绍了jQuery+ajax简单实现文件上传的方法,结合实例形式简单分析了jQuery基于ajax的post方法进行文件传输及asp.net后台处理技巧,需要的朋友可以参考下...2016-06-12
- 本文就是和大家分享一款由php结合ajax实现的无刷新留言板,先给大家看一下最后的效果图:数据库连接代码如下: <?php$conn = @mysql_connect("localhost","root","root") or die ("MySql连接错误");mysql_select_db("d...2015-10-30
- 这篇文章主要介绍了C#实现图片放大功能的按照像素放大图像方法,功能非常实用,需要的朋友可以参考下...2020-06-25
- 本文实例讲述了PHP多文件上传类,分享给大家供大家参考。具体如下:<?phpclass Test_Upload{ protected $_uploaded = array(); protected $_destination; protected $_max = 1024000; protected $_messages =...2015-10-30
- 这篇文章主要介绍了js 实现文件上传样式,下面文章举例说明js 是如何实现文件上传样式的,附有代码详细解说,需要的朋友可以参考一下,希望对你有所帮助...2021-10-21
- 在本篇文章中小编给各位整理了一篇关于python中翻译功能translate模块实现方法,有需要的朋友们可以参考下。...2020-12-18
- 这篇文章主要给大家介绍了关于微信小程序实现导航功能的操作步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-03-10
- php 大文件带进度的上传,一直是一个令php程序员很苦恼的问题。查询baidu 、Google ,大体做带进度的上传方式为:flash+php,socket,apc+php等,下面我介绍了apc +php+ajax制作的带进度的上传,并贴出源码,希望对大家有用。 Altern...2015-10-30
- 这篇文章主要为大家详细介绍了C#文件上传的简单实现,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2020-06-25
- EMUI11值得升级吗?好不好用?下面小编带来EMUI11上手体验,一起来看看手机鸿蒙OS的提前预演...2020-12-08
- AngularJS 让人爱不释手的八种功能,想知道AngularJS哪八种功能让人喜欢就快点看下本文吧...2016-03-28