jquery ajax上傳文件


最原始的上傳是表單上傳:

<form action="http://localhost:3000/upload-single" method="post" enctype="multipart/form-data">
	<h2>單圖上傳</h2>
	<input type="file" name="logo">
	<input type="submit" value="提交">
</form>

然后再到jq的ajax上傳:

  • formData表單+ajax提交
<form id="uploadForm">
	<p>指定文件名: <input type="text" name="filename" value="" /></p>
	<p>上傳文件: <input type="file" name="logo" /></ p>
	<input type="button" value="上傳" onclick="doUpload()" />
</form>

FormData對象,是可以使用一系列的鍵值對來模擬一個完整的表單,然后使用XMLHttpRequest發送這個"表單"

注意點

  • processData設置為false。因為data值是FormData對象,不需要對數據做處理。
  • <form>標簽添加enctype="multipart/form-data"屬性。
  • cache設置為false,上傳文件不需要緩存。
  • contentType設置為false。因為是由<form>表單構造的FormData對象,且已經聲明了屬性enctype="multipart/form-data",所以這里設置為false

上傳后,服務器端代碼需要使用從查詢參數名為logo獲取文件輸入流對象,因為<input>中聲明的是name="logo"

function doUpload() {
	$.ajax({
		url: 'http://localhost:3000/upload-single',
		type: 'POST',
		cache: false, //不必須
		data: new FormData($('#uploadForm')[0]),
		processData: false,//必須
		contentType: false,//必須
		success: function(data) {
			console.log(data)
		}
	})
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM