一個按鈕點擊後執行一個事件的方式,打開本地文件管理系統,然後選中文件,然後選中上傳
欢迎选择我的课程,让我们一起见证您的进步~~
前段時間封裝的一個方法,使用ajax和formData方法,實現文件上傳,在上傳的過程中顯示上傳進度
js
$('#upload').on('click',function(){ var xhr = new XMLHttpRequest(); xhr.open('post','../PHP/post_file.php',true); // 获取上传进度 xhr.upload.onprogress = (ev)=>{ var scale = Math.round( (ev.loaded/ev.total)*100 ); $('.text').html( scale + '%'); $('.progress').css('width', scale + '%'); }; xhr.onload = ()=>{ console.log('上传成功'); }; // 通过file表单的files属性拿到文件数据 通过formData将数据转换为二进制格式 var fileInfo = new FormData(); fileInfo.append( 'file',$('#iptFile')[0].files[0] ); // 发送数据 xhr.send(fileInfo); });
html
<form action=""> <input type="file" id="iptFile"> <input type="button" id="upload" value="点击上传"/> </form> <p class="box"> <p class="progress"></p> <p class="text"> 0% </p> </p>
css
.box{ position: relative; width: 400px; height: 50px; border:1px solid #000; margin-top:30px; } .progress{ width: 0%; height: 100%; background-color: red; } .text{ position: absolute; left: 0; top: 0; width: 100%; height: 100%; text-align: center; }
php (php非本人所寫)
<?php header('Content-type:text/html; charset="utf-8"'); $upload_dir = 'uploads/'; if(strtolower($_SERVER['REQUEST_METHOD']) != 'post'){ exit_status(array('code'=>1,'msg'=>'错误提交方式')); } if(array_key_exists('file',$_FILES) && $_FILES['file']['error'] == 0 ){ $pic = $_FILES['file']; if(move_uploaded_file($pic['tmp_name'], $upload_dir.$pic['name'])){ exit_status(array('code'=>0,'msg'=>'上传成功','url'=>$upload_dir.$pic['name'])); } } echo $_FILES['file']['error']; exit_status(array('code'=>1,'msg'=>'出现了一些错误')); function exit_status($str){ echo json_encode($str); exit; } ?> 需要在服务器环境下运行,我用的是wamp,上传的文件会存到和php同级下的uploads文件夹中
前兩天剛好遇到前端上傳圖片的問題,這篇文章是我的記錄,你看看有沒有幫助。傳送門
可以使用來實現,然後透過css改變input的樣式就可以了
前段時間封裝的一個方法,使用ajax和formData方法,實現文件上傳,在上傳的過程中顯示上傳進度
js
html
css
php (php非本人所寫)
前兩天剛好遇到前端上傳圖片的問題,這篇文章是我的記錄,你看看有沒有幫助。傳送門
可以使用來實現,然後透過css改變input的樣式就可以了