BS—文件上传

今天我们学学习一下文件上传到功能

一个静态的Html页面:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title></title>
</head>
<body>
    <!--enctype="multipart/form-data":选择该方式说明选择的是文件流,也就是文件的本身,如果表单中不上传文件,就不在需要enctype-->
    <form method="post" action="ProcessFileUP.ashx" enctype="multipart/form-data">
        <input type="file" name="fileup" />
        <input type="text" name="txtName" />
        <input type="submit" value="上传" />
    </form>
</body>
</html>

文件上传的具体方法:

public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/html";
            //一次只能上传一个文件,
            //获取上传的文件
            HttpPostedFile file = context.Request.Files[0];
            if (file.ContentLength>0)
            {
                //对上传文件的类型进行校验,获取上传文件的名称、
                string fileName = Path.GetFileName(file.FileName);//获取上传文件的名称,包含扩展名
                string fileExt = Path.GetExtension(fileName);//获取用户上传文件扩展名
                if (fileExt == ".jpg")
                {    //对上传的文件进行重命名
                    string newfilename = Guid.NewGuid().ToString();
                    //将上传的文件夹放在不同的目录下面,今天的文件放在今天的文件夹下面
                    string dir = "/ImageUpload/" + DateTime.Now.Year + "/" + DateTime.Now.Month + "/" + DateTime.Now.Day + "/";
                    //创建文件夹
                    if (!Directory.Exists(context.Request.MapPath(dir)))
                    {
                        Directory.CreateDirectory(context.Request.MapPath(dir));                   
                    }
                    //文件的完整路径
                    string fullDir = dir + newfilename + fileExt;
                    file.SaveAs(context.Request.MapPath(fullDir));
                    //对文件进行保存
                    file.SaveAs(context.Request.MapPath("ImageUpload/" + fileName));
                    //展示上传是的文件图片
                    context.Response.Write("<html><body><img src='" + fullDir + "'></body></html>");
                }
                else
                {
                    context.Response.Write("只能上传图片文件");
                }
            }
            else
            {
                context.Response.Write("请选择上传文件");
            }


        }

        public bool IsReusable
        {
            get
            {
                return false;
            }
        }
    }

 当然还有一个出错的界面:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title></title>   
    <script type="text/javascript">
      window.onload =function() {
          setTimeout(change,1000);
        }
        function change() {
            var time = document.getElementById("time").innerHTML;
            time = parseInt(time);
            time--;
            if (time < 1) {
                window.Location.href = "HanderUserInfo.ashx"
            }
            else {
                document.getElementById("time").innerHTML = time;
                setTimeout(change, 1000)
            }
        }     
    </script>
</head>
<body>
    服务器忙!<span style="font-size:20px;color:red "id="time">5</span>秒钟后自动跳转<a href="HanderUserInfo.ashx">用户列表</a>
</body>
</html>

效果展示:

BS—文件上传

如果本篇博客对您有所帮助,记得点赞哦!