引用插件query.js
引用插件ajaxfileupload.js
上傳頁面:index.php
<html>
<meta charset="utf-8">
<script type="text/javascript" src="js/jquery-3.4.1.min.js"></script>
<script type="text/javascript" src="js/ajaxfileupload.js"></script>
<body>
<p><input type="file" id="file1" name="myFile" /></p>
<button onclick="doupload()">上傳</button>
<p><img style="display: none;" width="50px" height="50px" id="img1" alt="" src="" /></p>
</body>
<script type="text/javascript">
function doupload(){
$.ajaxFileUpload
(
{
url: 'FileHelper.php', //用於文件上傳的服務器端請求地址
dataType: 'text', //返回值類型 一般設置為json
fileElementId: 'file1', //文件上傳域的ID
success: function (data) //服務器成功響應處理函數
{
if (data=="400ExeErr") { alert("文件擴展名錯誤");}
else if (data=="400FileSizeErr") {alert("文件過大");}
else{
alert("ok");
$("#img1").attr("src",data);
$("#img1").show();
}
},
error: function (data, status, e)//服務器響應失敗處理函數
{
alert(e);
}
}
)
}
</script>
</html>
FileHelper.php為文件上傳類:
<?php
header("Content-Type: text/html;charset=utf-8");
$MyFilePath="./Upload/"; //定義上傳文件夾名稱
$Extensions= array("jpeg","jpg","png"); //定義允許上傳的文件擴展名
$MaxFileSize=2; //定義允許上傳的最大文件M為單位
$Time=time(); //時間戳
if(isset($_FILES['myFile'])){
$file_name = $_FILES['myFile']['name'];
$file_size = $_FILES['myFile']['size'];
$file_tmp = $_FILES['myFile']['tmp_name'];
$file_type = $_FILES['myFile']['type'];
$name_arr = explode('.',$_FILES['myFile']['name']);
$file_ext=strtolower(end($name_arr));
/* 規定可以上傳的擴展名文件 */
if(in_array($file_ext,$Extensions)=== false){
echo "400ExeErr";
}
/* 規定可以上傳的文件大小 */
if($file_size > ($MaxFileSize*1024*1024)) {
echo "400FileSizeErr";
}
if(in_array($file_ext,$Extensions)=== true&&$file_size < ($MaxFileSize*1024*1024)){
/* 把圖片從臨時文件夾內的文件移動到當前腳本所在的目錄 */
$NewFileName=$Time."_".$file_name;
$AllFilePath=$MyFilePath.$NewFileName;
move_uploaded_file($file_tmp,$AllFilePath);
echo $AllFilePath; //返回文件路徑
}
}
?>
