批改狀態(tài):未批改
老師批語:
文件上傳說到底就是獲取文件的路徑上傳
前端代碼
<form method="POST" enctype="multipart/form-data"> <!-- 用隱藏域設(shè)置允許上傳的文件大小,僅考參考 --> <input type="hidden" name="MAX_FILE_SIZE" value="542488"> <fieldset> <legend align="center">文件上傳</legend> <p><strong>選擇文件:</strong><input type="file" name="upload"></p> </fieldset> <p align="center"><button type="submit" name="submit" id="submit">上傳</button></p> <span></span> </form> <script type="text/javascript" src="https://code.jquery.com/jquery-3.3.1.min.js"></script> <script type="text/javascript"> //加載提交事件給from設(shè)置提交事件 window.onload=function(){ var fm=document.getElementsByTagName('form')[0]; fm.onsubmit=function(evt){ //1、收集信息--普通表單信息和文件信息 var fd=new FormData(fm);//代表事件的元素節(jié)點對象 //2、ajax傳遞表單信息到服務(wù)器 var xhr=new XMLHttpRequest();//傳遞數(shù)據(jù) xhr.onreadystatechange=function(){ //判斷 if(xhr.readyState==4){ alert(xhr.responseText);//打印傳輸?shù)男畔? $("span").text(xhr.responseText) } } xhr.open('POST','admin.php');//數(shù)據(jù)傳輸格式 ,服務(wù)器端 xhr.send(fd);//發(fā)送 //阻止事件流 evt.preventDefault();//阻止瀏覽器跳轉(zhuǎn) } } </script>
點擊 "運行實例" 按鈕查看在線實例
后臺代碼
<?php //檢測請求類型是否POST,如果不是應(yīng)該提示用戶類型不對 if ($_SERVER['REQUEST_METHOD'] == 'POST') { //檢測是否有文件被上傳 if (isset($_FILES['upload'])) { //設(shè)置允許上傳的文件類型 $allow = ['image/jpg','image/jpeg', 'image/png']; if (in_array($_FILES['upload']['type'], $allow)) { //將文件先移動到臨時目錄 if (move_uploaded_file($_FILES['upload']['tmp_name'], "upload/{$_FILES['upload']['name']}")){ //上傳成功 echo "文件上傳成功"; } }else { //提示格式不對 echo "僅允許上傳jpg和png格式的圖片"; } } //對上傳錯誤進行處理 if ($_FILES['upload']['error'] > 0 ) { switch ($_FILES['upload']['error']) { case 1: echo '文件超過了php.ini配置中設(shè)置的大小'; break; case 2: echo '文件超過了表單中常量設(shè)置的大小'; break; case 3: echo '僅有部分文件被上傳'; break; case 4: echo '沒有文件被上傳'; break; case 6: echo '沒有可用的臨時文件夾'; break; case 7: echo '磁盤已滿,寫入失敗'; break; case 8: echo '上傳意外中止'; break; default: echo '系統(tǒng)未知錯誤'; break; } //保險起見,最好把創(chuàng)建的臨時文件刪除,當(dāng)然系統(tǒng)也會在結(jié)束會話時自動清空 if (file_exists($_FILES['upload']['tmp_name']) && is_file($_FILES['upload']['tmp_name'])) { unlink($_FILES['upload']['tmp_name']); } } } ?>
點擊 "運行實例" 按鈕查看在線實例
微信掃碼
關(guān)注PHP中文網(wǎng)服務(wù)號
QQ掃碼
加入技術(shù)交流群
Copyright 2014-2025 http://ipnx.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號