jquery.uploadView 实现图片预览上传

Posted 今晚再打老虎

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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="width: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; width: 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\',//设置显示预览图片的容器
            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;
        }

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

效果图类似这样

 

 这个同样也适用于手机上

 

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

 

以上是关于jquery.uploadView 实现图片预览上传的主要内容,如果未能解决你的问题,请参考以下文章

如何优雅地在Android上实现iOS的图片预览

jquery+html实现前端的上传图片预览

前端实现input[type='file']上传图片预览效果

html下纯JS实现图片压缩预览图片Base64转换

input实现多文件上传及图片预览

iOS开发漫话WKWebView之给H5网页图片添加点击事件以实现原生图片预览