• jquery.uploadView 实现图片预览上传


    图片上传,网上有好多版本,今天也要做一个查了好多最终找到了一个uploadview 进行了一下修改

    来看代码

    @{
        Layout = null;
    }
    
    <!DOCTYPE html>
    
    <html>
    <head>
        <meta name="viewport" content="width=device-width" />
        <title>Index</title>
        <script src="~/Scripts/jquery-1.8.2.min.js"></script>
        <script src="~/Scripts/jquery.uploadView.js"></script>
    </head>
    <body>
        <div>
            <div class="shangchuan">
                <h4>示例</h4>
                <div class="js_uploadBox" style="position: relative">
                    <div id="preview" class="js_showBox">
                        <img id="imghead" border="0" src="http://static.neihanhongbao.com/highads/images/nologo.jpg" alt="上传图片" style="100px; height:100px" />
                    </div>
                    <input type="file" name="file" id="id" style="position: absolute; top: 0px; left:0px; height: 100px; filter: alpha(opacity:0); opacity: 0;  100px" onclick="Upload()">
                </div>
                <input type="hidden" id="hidTmp_ID" name="Tmp_ID" value="" />
            </div>
        </div>
    </body>
    </html>
    <script type="text/javascript">
        function Upload() {
            $("#id").uploadView({
                uploadBox: '.js_uploadBox',//设置上传框容器
                showBox: '.js_showBox',//设置显示预览图片的容器
                 '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;
            }

    这里我是根据日期对文件夹分组了,并且保存到数据库。避免单个文件太大

    效果图类似这样

     这个同样也适用于手机上

    忘了附上下载链接:http://pan.baidu.com/s/1boMcO6j

  • 相关阅读:
    js中拼接字符串
    js中的fliter(),map(),forEach()方法
    美化下拉框select箭头部分(不彻底)
    offsetWidth、clientWidth、scrollWidth、scrollTop、scrollLeft等属性图示
    js事件代理(事件委托)最简单的理解
    ubuntu14.04 caffe+cuda-7.0配置
    ubuntu 中安装和删除软件总结
    C++中的容器可以同时保存各种数据类型
    string的用法
    linux查看GPU的配置和使用信息
  • 原文地址:https://www.cnblogs.com/elsons/p/7338341.html
Copyright © 2020-2023  润新知