github
技术栈
- github上,awesome + 技术栈名词
起步脚手架
- github上,vue starter kit 起步项目
文件上传
没有文件上传的post表单提交,值依然用键值对的方式提交
formidable
原生的post方式提交,监听data和end事件
- 第三方包-----formidable,处理表单数据和文件上传
- 使用
var form = new formidable.IncomingForm();
form.uploadDir = "./img";
form.keepExtensions = true;
//err 是错误对象
// fields 是键值对
// files 是关于上传文件的信息
form.parse(req, function(err, fields, files) {})
- files----还有更多属性,可以输出查看
{
"filename":
{
mtime:"2017-04-08T11:17:11.389Z",
name:"IMG_8217.JPG",
path:"img\upload_a799c0a40b82a9b973e48813e07695a6.JPG",
size:179168,
type:"image/jpeg"
}
}
核心库path
-
path.join()
用于连接路径,Unix系统是”/“,Windows系统是”\“。 -
path.resolve()
用于将相对路径转为绝对路径
url
-
url.parse
可以将一个url解析成一个对象 - 第二个参数为true,代表将对象中query解析成一个对象
url.parse(url,true)
formData 原生文件上传
XMLHttpRequest Level 2添加了一个新的接口FormData
//该元素有一个属性,files,存放了上传的文件
var fileEle = docuement.getElement("fileEle");
//自己拼凑
var formDate = new FormData();
formData.append("username","yf");
formData.append("filename",fileEle.files[0]);
//使用表单
var formEle = docuement.getElement("formEle");
var formDate = new FormData(formEle);
//使用jquery的ajax需要特别设置
var opt = {
processData:false,//jquery会默认处理你的数据
contentType:false//jquery发送类型为 x-www等
}
$.ajax({
data: formdata,
// 同时设置上边的两项
})