遇到问题,解决问题,记录问题,成长就是一步一步走出来的。
一、添加 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;
//然后就可以对该文件流只能保存或者其它操作
}
记录,只为自己以后遇到同样的问题,而不再花费不必要的时间