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

    1.文件上传的页面
    2.上传文件要保存的文件夹

    1.只要将文件传上来就行
    //1、获取要上传的文件,并且知道要上传到服务器的路径
    string s = "Uploads/aaa.txt";
    //2、生成绝对路径
    string path = Server.MapPath(s);
    //3、上传
    FileUpload1.SaveAs(path);

    问题:文件类型保存不住,名字无法修改,覆盖已上传的文件
    优化1:保留文件原有的名字
    解决:把路径中的文件名替换为控件选中的文件名
    string s = "Uploads/" + FileUpload1.FileName;

    问题:文件名一样,会覆盖,造成文件丢失
    解决:文件名拼接时间和用户名
    string s = "Uploads/" + DateTime.Now.ToString("yyyyMMddhhmmssms") + Request.Cookies["user"].Value + FileUpload1.FileName;

    问题:文件过大,但是还要上传
    解决:不是特别大可以更改请求最大长度,
    如果特别大:C#大文件断点续传
    扩容:在web.config中的<system.web>标记中
    <httpRuntime maxRequestLength="40960"/>

    解决:限制上传文件的大小
    服务端限制:
    if (FileUpload1.PostedFile.ContentLength > 1024 * 1024 * 4)
    {
    Label1.Text = "文件过大!";
    return;
    }

    客户端限制:
    fl.files[0].size > 1024 * 1024 * 4

    问题:限制上传文件的类型
    <asp:FileUpload ID="FileUpload1" accept=".jpg,.jpeg,.png" runat="server" />

    前端代码

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
    
    <!DOCTYPE html>
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title></title>
    </head>
    <body>
        <form id="form1" runat="server">
            <div>
                <asp:FileUpload ID="FileUpload1" accept=".jpg,.jpeg,.png" runat="server" />
    
    
    
                <asp:Button ID="Button1" runat="server" Text="保存" />
    
                <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
    
                <br />
                <%--上传后图片显示--%>  
                <asp:Image ID="Image1" runat="server" />
    
    
            </div>
        </form>
    </body>
    </html>
    <script type="text/javascript">
    
        document.getElementById("Button1").onclick = function () {
            var fl = document.getElementById('FileUpload1');
            if (fl.value.length <= 0) {
                document.getElementById('Label1').innerHTML = "请先选择要上传的文件!";
                return false;
            }
            else {
                if (fl.files[0].size > 1024 * 1024 * 4) {
                    document.getElementById('Label1').innerHTML = "文件过大,不允许超过4MB大小!";
                    return false;
                }
            }
        }
    
    
    
    </script>
    View Code

    后端

     protected void Page_Load(object sender, EventArgs e)
        {
            Button1.Click += Button1_Click;
        }
    
    
    
    
        void Button1_Click(object sender, EventArgs e)
        {
            if (FileUpload1.PostedFile.ContentLength > 1024 * 1024 * 4)
            {
                Label1.Text = "文件过大!";
                return;
            }
            //1、获取要上传的文件,并且知道要上传到服务器的路径
            string s = "Uploads/" + DateTime.Now.ToString("yyyyMMddhhmmssms") + FileUpload1.FileName;
    
            //2、上传
            string path = Server.MapPath(s);
            Label1.Text = path;
            FileUpload1.SaveAs(path);
    
            Image1.ImageUrl = s;
    
        }
    View Code
  • 相关阅读:
    写到 HTML 文档
    JavaScript 输出
    外部的 JavaScript
    [oldboy-django][2深入django]form表单clean_xx, clean完成数据验证+ form错误信息
    [oldboy-django][2深入django]登录注册页面验证码
    [oldboy-django][深入 rest framework] restframewok 教程: 分页功能
    [oldboy-django][2深入django]rest-framework教程
    [oldboy-django][6其他]备份数据库和导入数据库
    [oldboy-django][6其他]微信二维码扫码登录注册
    [oldboy-django][2深入django]django 官方中文文档 --扩展User
  • 原文地址:https://www.cnblogs.com/zhangwei99com/p/6940907.html
Copyright © 2011-2022 走看看