图片上传,网上有好多版本,今天也要做一个查了好多最终找到了一个uploadview 进行了一下修改
来看代码
@{ Layout = null; } <!DOCTYPE html> <html> <head> <meta content="width=device-width" /> <title>Index</title> <script src="https://www.jb51.net/~/Scripts/jquery-1.8.2.min.js"></script> <script src="https://www.jb51.net/~/Scripts/jquery.uploadView.js"></script> </head> <body> <div> <div> <h4>示例</h4> <div> <div> <img src="https://static.neihanhongbao.com/highads/images/nologo.jpg" alt="上传图片" /> </div> <input type="file"> </div> <input type="hidden" value="" /> </div> </div> </body> </html> <script type="text/javascript"> function Upload() { $("#id").uploadView({ uploadBox: '.js_uploadBox',//设置上传框容器 showBox: '.js_showBox',//设置显示预览图片的容器 width: '100', //预览图片的宽度,单位px height: '100', //预览图片的高度,单位px allowType: ["gif", "jpeg", "jpg", "bmp", "png"], //允许上传图片的类型 maxSize:1, //允许上传图片的最大尺寸,单位M success: function (e) { var l = $(".js_showBox img").attr("src"); $("#hidTmp_ID").val(l); } }); } </script>
代码前台看起来很简单。
实现的效果也还可以,不过这个保存的是base64的图片,插入数据库的时候我们一般都是保存xxxx.jpg 故需要实现一个方法
/// <summary> /// base64转图片 /// </summary> /// <returns></returns> public static string BaseToImg(string baseimg) { byte[] bt = Convert.FromBase64String(baseimg.Replace("data:image/jpeg;base64,", "")); string filepath = "ImgServer".GetAppsetting(); string sqlurl = @"" + DateTime.Now.ToString("yyyyMMdd") + "\\"; string sqlname = "" + DateTime.Now.ToString("yyyyMMddhhmmssmsfff") + ".jpg"; if (!System.IO.File.Exists(filepath + sqlurl)) { System.IO.Directory.CreateDirectory(filepath + sqlurl); System.IO.File.WriteAllBytes(filepath + sqlurl + sqlname, bt); } return sqlurl + sqlname; }
这里我是根据日期对文件夹分组了,并且保存到数据库。避免单个文件太大
效果图类似这样
这个同样也适用于手机上
总结
以上所述是小编给大家介绍的jquery.uploadView 实现图片预览上传功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
您可能感兴趣的文章: