• 通过iframe上传


    无刷上传已不是什么新鲜事了,今天主要记录一下通过iframe无刷上传。随便总结一下网页上传。

    1)直接网页里面加file控件然后网页回发上传。

    2)无刷上传主要通过iframe实现及现在html5标准中出台FileReader及XmlHttpRequest中的一些新方法上传。

    3)插件类上传(activex、flash、silverlight 等)。

     无刷上传网上已经有很多很完善的了,今天主要以最简单的方式记录一下。

    iframe上传脚本。

     <script type="text/javascript"> 
         function sendFile() {
    
             $("#form1").attr("encoding", "multipart/form-data");
             $("#form1").attr("action", "AjaxServer/upload.ashx");
             $("#form1").attr("target", "hd");
             $("#form1").submit();
         }
             function showMessage(msg) {
                 alert(msg);
             }
        
             //from重定向
             function redirect() {
                 $("#form1").attr("action", location.href);
                 $("#form1").removeAttr("target");
                 $("#form1").attr("encoding", "application/x-www-form-urlencoded");
                 if ($("#form1").attr("target") == null || $("#form1").attr("target") == "") {
                     return true;
                 }
                 else {
                     return false;
                 } 
             }
         </script> 

    asp.net页面

        <form id="form1" runat="server">
           
         <iframe id="hd" name="hd"  src="about:blank"></iframe>
         
         <div id="screenshot" style="display: block; background-color: #FFFF99; position: absolute;
               350px; left: 8px; bottom: 137px; border: 1px; border-color: Gray; border-style: solid;
             z-index: 1;">
              <input type="file" id="file1" name="upfile" size="28" />
             <input type="button" value="发 送" onclick="sendFile()" />
         </div> 
         <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" OnClientClick="return redirect()" />
         <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
         <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
        </form>

    upload.ashx

            context.Response.ContentType = "text/html";
            string path;
            if (context.Request.Files.Count > 0 && context.Request.Files[0].FileName != "")
            {
                HttpPostedFile hpf = context.Request.Files[0];
                if (hpf.FileName.Contains("\\"))
                    path = context.Server.MapPath("../Upload/" + hpf.FileName.Substring(hpf.FileName.LastIndexOf("\\")));
                else
                    path = context.Server.MapPath("../Upload/" + hpf.FileName);
    
                hpf.SaveAs(path);
                context.Response.Write("<script  type=\"text/javascript\">parent.showMessage('上传成功');</script>");
            }
            else
            {
                context.Response.Write("<script  type=\"text/javascript\">parent.showMessage('未获取到文件');</script>");   
            }
  • 相关阅读:
    java中判断图片格式并且等比例压缩图片
    如何将freemarker文件转化为html文件
    细数用anaconda安装mayavi时出现的各种问题
    利用java代码生成keyStore
    时间戳获取 天/月/日等until
    navicat连接msql Client does not support authentication protocol requested by server; consider upgrading MySQL client
    类初始化和构造器初始化的区别
    git从自己账号切换到公司的账号,剪项目失败
    求吸血鬼数(1000~10000,thinking)
    vue。js的时间的格式化
  • 原文地址:https://www.cnblogs.com/wonderfuly/p/2642197.html
Copyright © 2020-2023  润新知