国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > PHP > 正文

PHP+apc+ajax實(shí)現(xiàn)的ajax_upload上傳進(jìn)度條代碼

2020-03-22 19:47:58
字體:
供稿:網(wǎng)友
本文實(shí)例講述了PHP+apc+ajax實(shí)現(xiàn)的ajax_upload上傳進(jìn)度條代碼。分享給大家供大家參考,具體如下:上傳進(jìn)度條是怎么實(shí)現(xiàn)的呢 原理是怎么樣的呢 當(dāng)我們?yōu)g覽,選擇上傳后,會(huì)產(chǎn)生一個(gè)臨時(shí)文件,上傳的時(shí)把這個(gè)臨時(shí)文件,上傳到服務(wù)器,上傳完成后,這個(gè)臨時(shí)文件會(huì)被刪除掉。如果我們能讀取這個(gè)臨時(shí)文件的大小,就知道上傳進(jìn)度是多少了,php apc模塊可以實(shí)現(xiàn)這個(gè)功能。一、安裝apc模塊下載地址:http://pecl.php.net/package/apctar zxvf APC-3.1.8.tgzcd APC-3.1.8//usr/local/php/bin/phpize./configure --with-php-config=/usr/local/php/bin/php-configmake && make install二、修改php.iniextension = apc.soapc.rfc1867 = 1apc.max_file_size = 200Mupload_max_filesize = 1000Mpost_max_size = 1000Mmax_execution_time = 600max_input_time = 600memory_limit = 128M修改好后,重起apache或者其他,查看一下[root@BlackGhost php]# php -m[PHP Modules]cgi-fcgictypeeAccelerator。。。。。。。。三、upload_test.php$id = uniqid(rand(), true); html script type='text/javascript' src='jquery-1.3.2.js' /script script type='text/javascript' src='ajaxupload.3.1.js' /script script type='text/javascript' src='upload.js' /script body h1 上傳測(cè)試 /h1 form enctype="multipart/form-data" id="upload" method="POST" input type="hidden" name="APC_UPLOAD_PROGRESS" id="progress_key" value=" =$id " / input type="file" id="file" name="file" value=""/ br/ input id="submit" type="submit" value="Upload!" / /form div id="progressouter" div id="progressinner" /div /div br / div id='showNum' /div br div id='showInfo' /div br /body /html script type="text/javascript" $(document).ready(function(){form_submit(); /script APC_UPLOAD_PROGRESS這個(gè)有什么用呢 它對(duì)上傳的文件添加一個(gè)標(biāo)記,就可以在其它的php程序中用這個(gè)標(biāo)記訪問它。為apc的讀取提供支持。upload.js異步上傳的js文件:function form_submit (){new AjaxUpload('#upload', {action: 'upload.php',name: 'file',data: {APC_UPLOAD_PROGRESS:$("#progress_key").val()autoSubmit: true,onSubmit: function(file, extension){$('#progressouter').css('display', 'block');progress();onComplete: function(file, response){$("#showInfo").html(response);function progress (){$.ajax({type: "GET",url: "progress.php progress_key="+$("#progress_key").val(),dataType: "json",cache:false,success: function(data){if(data == 0) {var precent = 0;} else {for (i in data) {if (i == "current") {var json_current = parseInt(data[i]);if (i == "total") {var json_total = parseInt(data[i]);var precent = parseInt(json_current/json_total * 100);$("#progressinner").css("width",precent+"%");$("#showNum").html(precent+"%");$("#showInfo").html("ok");if ( precent 100) {setTimeout("progress()", 100);上面有一點(diǎn)要注意,APC_UPLOAD_PROGRESS:$("#progress_key").val()在這里,key是APC_UPLOAD_PROGRESS如果不是這個(gè)的話,apc找不到臨時(shí)文件的。在這里我為什么要用ajax_upload.js呢,因?yàn)閖query自帶的ajax,自帶參數(shù)沒有上傳文件的,也就是type='file'中的內(nèi)容,php端根本得不到。四、upload.php上傳文件if($_SERVER['REQUEST_METHOD'] == 'POST') {if(empty($_FILES["file"]["tmp_name"])){echo "no file";$tmp_name = $_FILES["file"]["tmp_name"];$name = dirname($_SERVER['SCRIPT_FILENAME'])."/upload/".$_FILES["file"]["name"];move_uploaded_file($tmp_name, $name);echo " p File uploaded. /p
如果文件比較大,就不要用http的方式來上傳了,太慢,并且影響網(wǎng)站的穩(wěn)定性。五、progress.php取得進(jìn)度的文件,給ajax調(diào)用用的if(isset($_GET['progress_key'])) {$status = apc_fetch('upload_'.$_GET['progress_key']);if($status['total']!=0 && !empty($status['total'])) {echo json_encode($status);} else {echo 0;
cancel_upload 用戶取消上傳,只有上傳完成時(shí)才有
rate 上傳速度,只有上傳完成時(shí)才有
start_time 開始時(shí)間更多關(guān)于PHP文件及ajax操作相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《php文件操作總結(jié)》及《PHP+ajax技巧與應(yīng)用小結(jié)》希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。PHP教程

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 驻马店市| 黑水县| 石家庄市| 鲜城| 海伦市| 称多县| 香河县| 德江县| 乳源| 东港市| 聊城市| 礼泉县| 垦利县| 盐源县| 桐梓县| 淮滨县| 清新县| 新泰市| 富裕县| 齐齐哈尔市| 鹤山市| 乌审旗| 屏山县| 蓬安县| 郴州市| 北宁市| 高青县| 徐闻县| 花垣县| 隆昌县| 麟游县| 化德县| 嘉黎县| 哈巴河县| 库尔勒市| 沾益县| 南开区| 樟树市| 宜良县| 乌兰察布市| 西宁市|