php 异步上传图片几种方法总结
要实现异步上传图片方法有常用的有二种,一种是利用iframe实现,另一种是借助于ajax来实现一般用第三方插件了,上传图片form提交target到一个隐藏的iframe里,代码如下 :
form action = "upload.php" id = "form1" name = "form1" enctype = "multipart/form-data" method = "post" target = "uploadIframe" > <!--上传图片页面 --> </ form > < iframe name = "uploadIframe" id = "uploadIframe" style = "display:none" > </ iframe >然后后台处理完上传图片逻辑后返回给前台,利用ajax修改当前页面DOM对象实现无刷新上传图片的友好功能,实例代码如下:a.html
< form enctype = "multipart/form-data" action = "a.php" target = "ifram_sign" method = "POST" > < input name = "submit" id = "submit" value = "" type = "hidden" > < label > 上传文件: < input name = "test_file" type = "file" id = "test_file" size = "48" > </ label > < input type = "image" value = "立即上传" id = "submit_btn" > </ form > < iframe name = "ifram_sign" src = "" frameborder = "0" height = "0" width = "0" marginheight = "0" marginwidth = "0" > </ iframe >PHP代码如下:
<?php if ( $_FILES [ "test_file" ][ "error" ] > 0) { echo "Error: " . $_FILES [ "test_file" ][ "error" ] . "<br />" ; } //开源代码phpfensi测试数据 else { //这里的判断图片属性的方法就不写了。自己扩展一下。 $filetype = strrchr ( $_FILES [ "test_file" ][ "name" ], "." ); $filetype = substr ( $filetype ,1, strlen ( $filetype )); $filename = "img/" .time( "YmdHis" ). "." . $filetype ; move_uploaded_file( $_FILES [ "test_file" ][ "tmp_name" ], $filename ); echo '<script >alert(1)</script>' ; $return = "parent.document.getElementByIdx_x('mpic" . $pageset_id . "').innerHTML='" . $dataimgpath . "'" ; echo "<script >alert('上传成功')</script>" ; echo "<script>{$return}</script>" ; } ?>其实jquery ajax图片异步上传,HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://HdhCmsTestw3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" > < html xmlns = "http://HdhCmsTestw3.org/1999/xhtml" lang = "en_US" xml:lang = "en_US" > < head > < title > 图片异步上传 </ title > </ head > < script type = "text/javascript" src = "js/jquery.js" > </ script > < script type = "text/javascript" src = "js/index.js" > </ script > < link type = "text/css" rel = "stylesheet" href = "css/index.css" > < body > < div class = "frm" > < form name = "uploadFrom" id = "uploadFrom" action = "upload.php" method = "post" target = "tarframe" enctype = "multipart/form-data" > < input type = "file" id = "upload_file" name = "upfile" > </ form > < iframe src = "" width = "0" height = "0" style = "display:none;" name = "tarframe" > </ iframe > </ div > < div id = "msg" > </ div > </ body > </ html >index.js,代码如下:
$( function (){ $( "#upload_file" ).change( function (){ $( "#uploadFrom" ).submit(); }); }); function stopSend(str){ var im= "<img src='upload/images/" +str+ "'>" ; $( "#msg" ).append(im); }upload.php
<?php $file = $_FILES [ 'upfile' ]; $name =rand(0,500000). dechex (rand(0,10000)). ".jpg" ; move_uploaded_file( $file [ 'tmp_name' ], "upload/images/" . $name ); //调用iframe父窗口的js 函数 echo "<script>parent.stopSend('$name')</script>" ; ?>查看更多关于php 异步上传图片几种方法总结 - php上传下载的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did29300