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
  • 相关阅读:
    打造基于CentOS7的xfce最简工作环境
    Linux下C程序的编辑,编译和运行以及调试
    修正 XE6 TListView 上方 SearchBok 右边的清除钮显示
    TabControl 显示彩色的图示 (XE6 Firemonkey)
    TSwitch 中文简繁显示支持(XE6 Android)
    改变 TMemo 的背景颜色 (Firemonkey)
    修正 XE5 Android 键盘三个问题
    Delphi 收藏
    展示 Popup 的使用方法
    ListView 下拉更新 (支持 Android)
  • 原文地址:https://www.cnblogs.com/zhangwei99com/p/6940907.html
Copyright © 2011-2022 走看看