zoukankan      html  css  js  c++  java
  • 图片上传及显示(包含多文件)

    前一段时间用到文件上传,好久没有写这个东西,有的东西也忘记了。所以本篇博客BZ决定记载一下,一方面自己回顾加深一下,另一方面供各位程序员学习。

    希望大神们对本文不对的地方进行批评指正!

    先在我们的html页面写上上传文件的文本框及图片显示所在的DIV,如下:

     1 <div class="form-group">
     2                             <label class="col-sm-2 control-label no-padding-right" id="lb_topimg"> 顶部图片: </label>
     3                             <div class="col-sm-4">
     4                                 <a href="javascript:;" class="a-upload">
     5                                     <input type="file" id="topimg" name="topimg" onchange="ajaxFileUpload('topimg', 'img_topimg',2)">点击这里上传图片
     6                                 </a><span style="color:#EC2020;font-size:10px">[ 建议上传图片208px*160px ]</span>
     7                             </div>
     8                             <div class="col-sm-3" id="img_topimg">
     9 
    10                             </div>
    11                         </div>
    View Code

    BZ在图片上传用到了Ajax,并且传多去三个参数,下面粘上js调用代码块:

     1 function ajaxFileUpload(id, contentid,imgid) {
     2     $.ajaxFileUpload
     3     (
     4         {//<input type="file" id="farmlogo" name="farmlogo" onchange="ajaxFileUpload('farmlogo', 'img_farmlogo',1)">
     5             url: '../Handler/DataHandler.ashx', //用于文件上传的服务器端请求地址
     6             secureuri: false, //一般设置为false
     7             fileElementId: id, //文件上传空间的id属性  <input type="file" id="file" name="file" />
     8             //dataType: 'json', //返回值类型 一般设置为json
     9             success: function (data, status)  //服务器成功响应处理函数
    10             {
    11                 var obj = eval('(' + $(data).text() + ')');
    12                 $("#" + contentid).html("");
    13                 $("#" + contentid).append("<div class='open' style='100px;height:50px;float:left;'><img id='uploadimg_" + contentid + imgid "' class='img-responsive'  style='100px;height:50px;' src='" + obj.msg.PicUrl + "' /><img style='position:relative;right:6px;float:right' src='/Images/del.gif' onclick='RemoveImg(this);' border='0' /> </div><input id='hhimg"+ contentid + imgid "' name='imgurl" + imgid + "' value='" + obj.msg.PicUrl + "' type='hidden'/>")
    14             },
    15             error: function (data, status, e)//服务器响应失败处理函数
    16             {
    17                 alert(e);
    18             }
    19         }
    20     )
    21     return false;
    22 }
    View Code

    在这里给大家介绍一下上传三个参数的原因:input的id是为了区分图片的分组情况(假设要上传所需的两组图片),div的id是确定图片将显示在哪个div中。

    附上服务器端请求地址代码块:

    public void ProcessRequest(HttpContext context)
            {
                //context.Response.ContentType = "text/plain";
                //context.Response.Write("Hello World");
             
                //在此处写入您的处理程序实现。
                HttpFileCollection files = context.Request.Files;
                if (files != null && files.Count > 0)
                {
                    HttpPostedFile file = files[0];
    
                    string tmpPath = context.Server.MapPath("/Upload/");
                    string fileName = DateTime.Now.ToString("yyyyMMddHHmissfff") + System.IO.Path.GetFileName(file.FileName);
    
                    file.SaveAs(tmpPath + fileName);
                    context.Response.Clear();
                    context.Response.Write(@"{
                        status : 'success', 
                        msg: { 
                            PicUrl : '" + "/upload/" + fileName + @"'
                        }
                    }");
                    context.Response.End();
                }
            }
    View Code

    图片的命名格式是以年月日+图片的名称。Upload是将图片上传在Upload文件夹里。

    看到这里大家应该都明白,重点来了!!!

    多图片上传呢??其实很简单,就是将第二段代码块中的一句话注释掉就OK!

    $("#" + contentid).html("");

    即将图片所在的div不再清空!!

    可以写一个js规定图片路径的储存,运用循环的方式将选择的图片路径保存在数据库!大功告成!

    感谢大家关观看本篇博客,希望更多和我一样的小菜积极学习,同样希望大神们对本篇博客的不足之处提出意见!谢谢大家!

  • 相关阅读:
    乐观锁和悲观锁
    [转载] Java实现生产者消费者问题
    [转载] 最全最强解析:支付宝系统架构内部剖析(架构图)
    [转载] Linux五种IO模型
    [转载] Hibernate与 MyBatis的比较
    Spring的69个知识点
    Spring MVC工作原理
    你不知道的JS系列 ( 12 ) - 声明提升
    你不知道的JS系列 ( 11 ) - 块作用域
    你不知道的JS系列 ( 10 ) - 立即执行函数表达式
  • 原文地址:https://www.cnblogs.com/A-aron/p/5867381.html
Copyright © 2011-2022 走看看