- 直接上传
form 中添加
enctype="multipart/form-data"
例如:<form action="UploadFile.ashx" method="post" enctype="multipart/form-data">
- 使用formData 进行ajax上传
//是否支持formData
if(window.FormData) {
var formData = new FormData();
// 建立一个upload表单项,值为上传的文件
formData.append('upload', document.getElementById('upload').files[0]);
//创建xhr对象
var xhr = new XMLHttpRequest();
xhr.open('POST', actionUrl);
// 定义上传完成后的回调函数
xhr.onload = function () {
if (xhr.status === 200) {
console.log('上传成功');
} else {
console.log('出错了');
}
};
xhr.send(formData);
}
- 服务端解析(Node)
//使用formidable 中间件
var form = new formidable.IncomingForm()
//编码方式
form.encode = ‘utf-8’
//保存路径,路径不存在会报错
form.uploadDir = ‘’
//是否保留扩展名
form.keepExtensions = true
//文件大小
form.maxFieldsSize = 2*1024*1024
form.parse(req, function(err, fields, files){
//回调
//files对象的格式
var sieze = files.size
//文件的绝对路径
var path = files.path
//文件的名称
var name = files.name
//文件的类型
var type = files.type
//文件的时间戳
var mtime = files.mtime
})