zoukankan      html  css  js  c++  java
  • 修改上传文件控件样式并实现上传文件功能

      在google上搜一下我上面的标题名称,一大堆的结果,发现http://bbs.blueidea.com/thread-1227402-1-1.html应该是最原始的.但发现和我现在项目要求不是很符合,所以整理一下,留新手或大虾指点:)
    以下是具体代码:BasePage中
    /// <summary>
            
    /// 获取控件的位置,然后设置点击控件的位置,用于input type=file 上
            
    /// </summary>

            public void IEGetCtrlPlace()
            
    {
                
    string sHTML = "";
                sHTML 
    += "<script language=\"javascript\">\n";
                sHTML 
    += "function fileAttachmentclick(obj)\n";
                sHTML 
    += "{\n";
                sHTML 
    += " with(obj){\n";
                sHTML 
    += "style.posTop=event.srcElement.getBoundingClientRect().top\n";
                sHTML 
    += " var x=event.x-offsetWidth/2\n";
                sHTML 
    += " if(x<event.srcElement.getBoundingClientRect().left)x=event.srcElement.getBoundingClientRect().left\n";
                sHTML 
    += "if(x>event.srcElement.getBoundingClientRect().left+event.srcElement.offsetWidth-offsetWidth)x=event.srcElement.getBoundingClientRect().left+event.srcElement.offsetWidth-offsetWidth\n";
                sHTML 
    += "style.posLeft=x\n";
                sHTML 
    += "}\n";
                sHTML 
    += "}\n";
                sHTML 
    += "</script>\n";
                Page.RegisterStartupScript(
    "IEGetCtrlPlace", sHTML);
            }
    注:在网上那段控制位置的script定位有问题,它用的是event.srcElement.offsetTop与event.srcElement.offsetLeft.
    执行页面的.cs文件page_load中,加载上面的代码
     this.IEGetCtrlPlace();
    然后加HTML客户段控件,注意:input type=file需要添加runat="server",这样编程就可以访问到,当然,需要在.cs文件中声明:protected System.Web.UI.HtmlControls.HtmlInputFile fileAttachment;
    <input class="txt-main" id="f_file" type="text" size="36" name="f_file">
    <input class="btn-main" onmouseover="fileAttachmentclick(fileAttachment)" type="button" value="上传文件">
     
    <INPUT id="fileAttachment" style="FILTER: alpha(opacity=0); WIDTH: 30px; POSITION: absolute" type="file" onchange="f_file.value=this.value" runat="server">
    最后添加btn,其事件代码如下:
    if (this.fileAttachment.PostedFile.ContentLength != 0)
                
    {
                    
    string sFileListName = Guid.NewGuid().ToString();
                    
    string sOriginalFileName = this.fileAttachment.PostedFile.FileName; 
                    sOriginalFileName 
    = sOriginalFileName.Substring(sOriginalFileName.LastIndexOf("\\"+ 1);
                    Directory.CreateDirectory(Server.MapPath(GlobalVar.UploadPath 
    + sFileListName));
                    
    this.fileAttachment.PostedFile.SaveAs(Server.MapPath(GlobalVar.UploadPath + sFileListName + "/" + sOriginalFileName));
                    
          }

                
    else
                
    {
                    
    this.Alert(GlobalVar.SA_RECORD_MISS_REQUIRED_INFO);//提示:缺少必要的信息,请检查。
                     }
    GlobalVar.UpLoadPath是上传文件的路径.
  • 相关阅读:
    CF1313A Fast Food Restaurant
    模板: zkw线段树
    从5个经典工作开始看语义SLAM
    LeetCode题号[200,299]刷题总结
    2020春招实习总结
    LeetCode题号[100,199]刷题总结
    LeetCode题号[1,99]刷题总结
    HashMap源码详解
    动态规划——楼层扔鸡蛋问题
    图论——迪杰斯特拉算法和最小生成树
  • 原文地址:https://www.cnblogs.com/zjy/p/533196.html
Copyright © 2011-2022 走看看