github
技術(shù)棧
- github上,awesome + 技術(shù)棧名詞
起步腳手架
- github上,vue starter kit 起步項(xiàng)目
文件上傳
沒(méi)有文件上傳的post表單提交,值依然用鍵值對(duì)的方式提交
formidable
原生的post方式提交,監(jiān)聽(tīng)data和end事件
- 第三方包-----formidable,處理表單數(shù)據(jù)和文件上傳
- 使用
var form = new formidable.IncomingForm();
form.uploadDir = "./img";
form.keepExtensions = true;
//err 是錯(cuò)誤對(duì)象
// fields 是鍵值對(duì)
// files 是關(guān)于上傳文件的信息
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"
}
}
核心庫(kù)path
-
path.join()
用于連接路徑,Unix系統(tǒng)是”/“,Windows系統(tǒng)是”\“。 -
path.resolve()
用于將相對(duì)路徑轉(zhuǎn)為絕對(duì)路徑
url
-
url.parse
可以將一個(gè)url解析成一個(gè)對(duì)象 - 第二個(gè)參數(shù)為true,代表將對(duì)象中query解析成一個(gè)對(duì)象
url.parse(url,true)
formData 原生文件上傳
XMLHttpRequest Level 2添加了一個(gè)新的接口FormData
//該元素有一個(gè)屬性,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需要特別設(shè)置
var opt = {
processData:false,//jquery會(huì)默認(rèn)處理你的數(shù)據(jù)
contentType:false//jquery發(fā)送類型為 x-www等
}
$.ajax({
data: formdata,
// 同時(shí)設(shè)置上邊的兩項(xiàng)
})