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是上传文件的路径.
  • 相关阅读:
    ABAP-年月期间搜索帮助
    Others-Goldengate 数据同步
    ABAP-语音输出
    ABAP-ALV报表导出格式恢复初始画面
    ABAP-动态创建DATABASE/FUNCTION(风险)
    JDK 12 安装
    级数判敛--转自高教
    一文搞懂 JavaScript 中 DOM 相关的距离
    你应该知道的前端编程利器 VS Code
    js变量提升与函数提升的详细过程
  • 原文地址:https://www.cnblogs.com/zjy/p/533196.html
Copyright © 2011-2022 走看看