js前臺:瀏覽器
<input id="upload_img_input" v-on:change="onFileChange" type="file" multiple/> onFileChange(e) { var files = e.target.files || e.dataTransfer.files; if (!files.length)return; this.createImage(files); }, createImage(file) { if(typeof FileReader==='undefined'){ alert('您的瀏覽器不支持圖片上傳,請升級您的瀏覽器'); return false; } var image = new Image(); var vm = this; var leng=file.length; for(var i=0;i<leng;i++){ var reader = new FileReader(); reader.readAsDataURL(file[i]); reader.onload =function(e){ vm.images=e.target.result; }; } }
1.上面代碼將圖片生成base64的字符串,該字符串以分號切割 例如這樣的格式 "data:image/png;base64,iVBORw0KGgo.............." this
該字符串的第一部分"data:image/png;base64" 是表明該Base64字符串對應的原始類型,第二部分是該文件生成的內容spa
2.在C#語言的後臺 咱們直接獲取該字符串,並對其分割轉化爲圖片,注意如不分割 FromBase64String 方法會報錯,提示輸入的不是有效的 Base-64 字符串,由於它包含非 Base-64 字符、兩個以上的填充字符,或者填充字符間包含非法字符。因此咱們只取第二部分的內容出來轉化就行了,由於第一部分包含着文件格式code
public JsonResult PDUploadImage(string img) { string error = ""; SaveImage(@"C:\Users\JUNON37\Desktop\Pictures\123", img, ref error); return Json("", JsonRequestBehavior.AllowGet); } private bool SaveImage(string file_name, string img_string, ref string error) { try { string[] img_array = img_string.Split(','); byte[] arr = Convert.FromBase64String(img_array[1]); using (MemoryStream ms = new MemoryStream(arr)) { Bitmap bmp = new Bitmap(ms); if (img_array[0].ToLower() == "data:image/jpeg;base64") { bmp.Save(file_name + ".jpg"); } else if (img_array[0].ToLower() == "data:image/png;base64") { bmp.Save(file_name + ".png"); } else { error = "不支持該文件格式。"; return false; } } } catch (Exception ex) { error = "生成圖片發生錯誤。" + ex.ToString(); return false; } return true; }
這樣就行了blog