前端代碼:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>菜鳥教程(runoob.com)</title>
<script>
function myFunction() {
// alert("進入函式");
//document.getElementById("shuchu").innerHTML="Hello World";
var form = document.getElementById('form1');
var formdata = new FormData(form);
var xmlhttp;
if (window.XMLHttpRequest)
{
// IE7+, Firefox, Chrome, Opera, Safari 瀏覽器執行代碼
xmlhttp=new XMLHttpRequest();
}
else
{
// IE6, IE5 瀏覽器執行代碼
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
// document.getElementById("shuchu").innerHTML=xmlhttp.responseText;
alert(xmlhttp.responseText);
}
}
xmlhttp.open("POST","test_ajax_formdata.php",true);
xmlhttp.send(formdata);
}
</script>
</head>
<body>
<form name="form1" id="form1" onsubmit="myFunction()">
A: <input type="text" name="firstname"><br>
B: <input type="text" name="lastname"><br>
<input type="file" name="file">
<input type="submit" value="https://bbs.csdn.net/topics/提交">
</form>
<div id="shuchu">ddddddddddddddddd</div>
</body>
</html>
后端代碼:
<?php
echo "A的值:".$_POST["firstname"]."<br>";
echo "B的值:".$_POST["lastname"]."<br>";
echo "上傳檔案名: " . $_FILES["file"]["name"] . "<br>";
echo "檔案型別: " . $_FILES["file"]["type"] . "<br>";
echo "檔案大小: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
echo "檔案臨時存盤的位置: " . $_FILES["file"]["tmp_name"];
?>
思路:把整個表單資料上傳后php輸出表單中各項的值
問題一 混合表單可以一起用formdata上傳嗎?因為該表單項中有一般資料和檔案資料混合著
問題二 后端的服務器是怎么決議表單的?資料發送到php服務后的處理程序與決議演算法 就比如資料發送到服務器上服務器是怎么區分一般資料與檔案資料的。
希望有前輩能指點下先謝謝!推薦下看什么書籍能解決我的問題。只要是能幫助到解決問題的資訊都可以。萬分感謝!
uj5u.com熱心網友回復:
問題一:可以。。問題二: PHP不熟,,沒做過,不過我用node做過這個東西,node的后端要相應的模塊才能決議這種FormData的表單資料,node用的是multiparty這個模塊,還有一些類似的也可以。。PHP我就不知道怎么弄了,應該是有想應的東西
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/268355.html
標籤:Ajax
