前端代码
<script type="text/javascript">
function readFiles(evt) {
var files = evt.target.files;
//console.log(files.length);
if (!files) {
alert("文件不支持");
return;
}
var thesrc = window.URL.createObjectURL(files[0]);
appendFile(thesrc)
}
function appendFile(path) {
var img = new Image();
img.src = path;
img.onload = function () {
var that = this;
//生成比例
var w = that.width,
h = that.height,
scale = w / h;
w = 480 || w;
h = w / scale;
//生成canvas
var canvas = document.createElement(‘canvas‘);
var ctx = canvas.getContext(‘2d‘);
$(canvas).attr({ width: w, height: h });
ctx.drawImage(that, 0, 0, w, h);
var base64 = canvas.toDataURL(‘image/jpeg‘, 1 || 1);
base64 = base64.replace(/[+]/g, "%2B");
console.info(base64)
upload(base64);
}
}
function upload(base64) {
$.ajax({
type: "Post",
url: "/Upload2.ashx",
data: { imageData: base64, type: "image/jpeg" },
dataType: "json",
success: function (data) {
}
});
}
</script>
后端代码
string base64 = context.Request.Params["imagefile"]; string data = context.Request.Form["imageData"]; string strData = data.Split(new char[] { ‘,‘ }, StringSplitOptions.RemoveEmptyEntries)[1]; //图片的路径 string basePath = AppDomain.CurrentDomain.BaseDirectory; string dirName = DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString(); string dirChildName = DateTime.Now.Day.ToString(); string imagePath = String.Format(@"Upload\{0}\{1}", dirName, dirChildName); string path = Path.Combine(basePath, imagePath); Directory.CreateDirectory(path); strData = strData.Replace("%2B", "+"); byte[] arr = Convert.FromBase64String(strData); MemoryStream ms = new MemoryStream(arr); Bitmap bmp = new Bitmap(ms); string imageName = DateTime.Now.Ticks + ".jpg"; string savePath = Path.Combine(path, imageName); bmp.Save(savePath, ImageFormat.Jpeg); ms.Close(); //将路径前加一个\ //imagePath = "\" + imagePath; imagePath = imagePath.Replace(‘\\‘, ‘/‘);
移动端上传图片前端压缩,获取input type=file路径
原文:http://www.cnblogs.com/jt789/p/5195879.html