遇到問題,解決問題,記錄問題,成長就是一步一步走出來的。
一、添加 input
標簽
我的工作中遇到了,需要上傳pdf文件到服務器的需求,而且只能上傳pdf文件,accept
指定了 pdf
類型。
<input type="file" id="testFile" name="testFile" accept="application/pdf">
二、Jquery實現上傳
文件上傳一般要基於表單上傳,所以這里 new 了一個 FormData()
實例,用來將選中的文件傳輸到服務端。
function fileUpload() {
var formData = new FormData();
var fileName = $('#testFile').val();
var files = $('#testFile')[0].files[0];
formData.append("File", files);
formData.append("FileName", fileName);
// 以及一些其它要傳入的參數
// formData.append(key, value);
$.ajax({
url: "后台上傳地址",
type: 'POST',
data: formData,
dataType:'json',
processData: false,// ⑧告訴jQuery不要去處理發送的數據
contentType: false, // ⑨告訴jQuery不要去設置Content-Type請求頭
success: function (res) {
console.log(res)
}
});
}
三、后台接收
后台接收一般要借助 HttpContext
上下文來獲取文件
public void UploadFile(){
//獲取文件
var file = HttpContext.Request.Files["File"];
if (file == null)
{
//做出文件不能為空返回
//...
return;
}
//獲取參數 文件名稱
var fileName = HttpContext.Request["FileName"];
//獲取文件流
var stream = file.InputStream;
//然后就可以對該文件流只能保存或者其它操作
}
記錄,只為自己以后遇到同樣的問題,而不再花費不必要的時間