我有以下形式:阿賈克斯文件上傳
<form method="post" enctype="multipart/form-data" id="upload" action="upload.php">
<input type="file" id="file" name="file" size="10"/>
<input id="uploadbutton" type="button" value="Upload"/>
</form>
以下JavaScript:
$(document).ready(function() {
$("#uploadbutton").click(function() {
var filename = $("#file").val();
$.ajax({
type: "POST",
url: "upload.php",
enctype: 'multipart/form-data',
data: {
file: filename
},
success: function (text) {
alert("Data Uploaded: " + text);
}
});
});
});
及以下PHP(作爲測試)
echo json_encode($_POST); //uses post to check as $_FILES returns nothing
警報將隨後儘管這是一個文件名,而不是實際的文件本身,但可以通過響應行"file: test.jpg"
通知我。我怎樣才能轉換我的文件來獲取實際的文件,而不是文件的名稱。
預先感謝您。
您根本無法這樣做。您將需要創建一個FormData對象並將其作爲數據發送,同時將processData設置爲false。請注意,由於某些瀏覽器不支持「FormData」對象,因此這些瀏覽器無法通過ajax上傳文件。 –
兼容性開始成爲問題嗎? –
是的。對於完全跨瀏覽器的解決方案(或作爲不支持formData的瀏覽器的後備),您可以將表單提交給隱藏的iframe。 –