zoukankan      html  css  js  c++  java
  • 上传文件心得

    当我们做后台管理页面通常需要做一个文件上传,但是如果多个页面上传的时候我们会去做一个一个的上传代码吗?如果你还是,那么 oh shit !

    我的思路是做一个上传文件功能的页面,然后用iframe将当前上传页面嵌套进来,然后在上传页面做一个上传成功时候将上传的url用javascript通知window.openner对象页面的值。

    html页面如下Yeml_File_Upload

    <!DOCTYPE HTML>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>无标题文档</title>
    </head>
    
    <body><iframe src="Yeml_File_Upload.aspx" width="100%" height="30" frameborder="0">
                        </iframe>
    </body>
    </html>

    .aspx

    <!DOCTYPE html>
    <html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>文件上传</title>
    </head>
    <body>
        <form id="form1" runat="server">
        <!--    
            author:叶明龙    
            createTime:2013-08-08
            descript:上传成功,将图片所在的根目录的返回在本页面的隐藏域中,便于window.opener访问本页面的上传路径。
            客户端生成了upladSucess(upoad_url)函数,可直接在parent页面直接调用本页面的upoad_url。
        -->
        <asp:FileUpload ID="file_upload" runat="server" />
        <asp:Button ID="btn_upload" runat="server" Text="上传" OnClick="btn_upload_Click" />
        <input type="hidden" id="hidd_upoad_url" runat="server" />
        </form>
    </body>
    </html>
     protected void btn_upload_Click(object sender, EventArgs e)
            {
                // String path = Server.MapPath("~/UploadedImages/");
                if (file_upload.HasFile)
                {
                    bool fileOK = false;
                    String fileExtension = Path.GetExtension(file_upload.FileName).ToLower();
                    String[] allowedExtensions = { ".gif", ".png", ".jpeg", ".jpg" };
                    for (int i = 0; i < allowedExtensions.Length; i++)
                    {
                        if (fileExtension == allowedExtensions[i])
                        {
                            fileOK = true;
                        }
                    }
                    if (!fileOK)
                    {
    
                        return;
                    }
                    string path = string.Format("/UploadImages/jhrz_images/{0}/", DateTime.Now.ToString("yyyyMMdd"));
                    if (!Directory.Exists(Server.MapPath("~" + path)))
                        Directory.CreateDirectory(Server.MapPath("~" + path));
                    string file_name = string.Format("{0}{1}{2}", path, Guid.NewGuid(), fileExtension);
                    file_upload.SaveAs(Server.MapPath(file_name));
                    hidd_upoad_url.Value = file_name;
                    ClientScript.RegisterStartupScript(GetType(), "upload_success", "<script type='text/javascript'>parent.upladSucess('" + file_name + "');</script>", false);
                }
            }

    例如是1.html 

    <!DOCTYPE HTML>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>无标题文档</title>
    <script type="text/javascript">
    /**
    *图片上传成功callback
    */
    function upladSucess(img_url) {
    
       // alert(img_url);
        document.getElementById("img1").setAttribute("src",img_url);
    }
    
    </script>
    </head>
    
    <body>
    <img id="img1" src="" />
    <iframe src="Yeml_File_Upload.aspx" width="100%" height="30" frameborder="0">
                        </iframe>
    </body>
    </html>

    剩下如果还有2.html,3.html,**.aspx需要上传文件的时候我们只需要在每个页面重写

    /**
    *图片上传成功callback
    */
    function upladSucess(img_url) {
    
       // alert(img_url);
        document.getElementById("img1").setAttribute("src",img_url);
    }

    来逻辑我们的页面赋值操作就好了!

  • 相关阅读:
    【NOI2005T1】瑰丽华尔兹-DP单调队列优化
    【POJ1113】Wall-Graham-Scan算法求凸包
    【POJ1113】Wall-Graham-Scan算法求凸包
    【POJ2774】Long Long Message-求最长公共子串(后缀数组求法)
    【POJ2774】Long Long Message-求最长公共子串(后缀数组求法)
    【POJ2195】Going Home-最小费用最大流模板题
    【POJ2195】Going Home-最小费用最大流模板题
    【POJ1273】Drainage Ditches-最大流问题
    【POJ1273】Drainage Ditches-最大流问题
    codevs 1155 金明的预算方案
  • 原文地址:https://www.cnblogs.com/yeminglong/p/3246497.html
Copyright © 2011-2022 走看看