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
  • 相关阅读:
    Data Base mysql备份与恢复
    java 乱码问题解决方案
    【知识强化】第二章 物理层 2.1 通信基础
    【知识强化】第二章 进程管理 2.2 处理机调度
    【知识强化】第二章 进程管理 2.1 进程与线程
    【知识强化】第一章 操作系统概述 1.3 操作系统的运行环境
    【知识强化】第一章 网络体系结构 1.1 数据结构的基本概念
    【知识强化】第一章 网络体系结构 1.2 计算机网络体系结构与参考模型
    【知识强化】第一章 网络体系结构 1.1 计算机网络概述
    【知识强化】第一章 操作系统概述 1.1 操作系统的基本概念
  • 原文地址:https://www.cnblogs.com/zhangwei99com/p/6940907.html
Copyright © 2011-2022 走看看