// 上傳文件
function upload(num) {
console.log("num:" + num);
console.log("headImg.src.:" + headImg.src);
if(num == 0 && headImg.src.indexOf('img/header.png') > -1) {
plus.nativeUI.alert("請添加頭像圖片文件!");
return;
}
console.log("cardFrontImg.src.:" + cardFrontImg.src);
if(num == 1 && cardFrontImg.src.indexOf('img/upload.png') > -1) {
plus.nativeUI.alert("請添加身份證正面圖片文件!");
return;
}
console.log("cardBackImg.src.:" + cardBackImg.src);
if(num == 2 && cardBackImg.src.indexOf('img/upload.png') > -1) {
plus.nativeUI.alert("請添加身份證反面圖片文件!");
return;
}
console.log("開始上傳:")
var wt = plus.nativeUI.showWaiting();
var server = uri + "appupload/PostFile";
console.log("upload url server:" + server);
var task = plus.uploader.createUpload(server, {
method: "POST"
},
function(t, status) { //上傳完成
if(status == 200 || status == 201) {
var strData = t.responseText;
if(strData != "") {
// var data = strData.split(",");
// document.getElementById("relativeUrl").value = (data[0].split(":"))[1];
// document.getElementById("absoluteUrl").value = (data[1].split(":"))[1];
plus.nativeUI.alert("上傳成功!");
}
wt.close();
} else {
plus.nativeUI.alert("上傳失敗:" + status);
wt.close();
}
}
);
task.addData("imageNum", num + "");//區分頭像 和 身份證
task.addData("sys_app_secret", homecamp.data.qq007_secret);
task.addData("sys_app_clientId", c.getClientId());
task.addData("sys_app_token", localStorage.getItem("api_token"));
task.addData("sys_app_id", homecamp.data.qq007_appid + "");
//添加其他參數
if(num == 0) {
task.addFile(headImg.src, {
key: "file"
});
}
if(num == 1) {
task.addFile(cardFrontImg.src, {
key: "file"
});
}
if(num == 2) {
task.addFile(cardBackImg.src, {
key: "file"
});
}
task.start();
}
1.用plus.uploader.createUpload上傳文件經常要跟上其他參數,如上面代碼的
task.addData(key,value);就是添加POST的參數.
*重要的點事value要string類型的,js里面就直接這樣寫:
task.addData(key,value + "");
不然在服務端是接收不到參數的.
2.web api 服務端代碼:
[HttpPost] public HttpResponseMessage PostFile() { string SaveTempPath = ""; HttpResponseMessage result = null; var httpRequest = HttpContext.Current.Request; int imageNum = string.IsNullOrEmpty(httpRequest.Params["imageNum"]) ? 0 : int.Parse(httpRequest.Params["imageNum"]); switch (imageNum) { case 0://文件保存目錄路徑 SaveTempPath = HomeCamp.Biz.Dict.SysConfig.GetValue("system_init", "imgHeaderSaveUrl");//頭像 break; case 1: case 2: SaveTempPath = HomeCamp.Biz.Dict.SysConfig.GetValue("system_init", "imgIdCardSaveUrl");//身份證 break; }; if (httpRequest.Files.Count > 0) { var docfiles = new List<string>(); foreach (string file in httpRequest.Files) { var postedFile = httpRequest.Files[file]; var filePath = HttpContext.Current.Server.MapPath("~/" + SaveTempPath + postedFile.FileName); postedFile.SaveAs(filePath); docfiles.Add(filePath); } result = Request.CreateResponse(HttpStatusCode.Created, docfiles); //數據庫操作 #endregion } else { result = Request.CreateResponse(HttpStatusCode.BadRequest); } return result; }
