zoukankan      html  css  js  c++  java
  • webform 上传

    要使用控件 - FileUpload
    1、如何判断是否选中文件?
    FileUpload.FileName -
    选中文件的文件名,如果长度不大于0,那么说明没选中任何文件
    js - f.value.length

    2、如何保存到服务器上?
    FileUpload.SaveAs("绝对路径");

    3、如何获得绝对路径?
    先编写相对路径 - "UpLoads/abc.txt"
    将相对路径映射成绝对路径 - Server.MapPath("UpLoads/abc.txt");

    4、现在只能上传成为txt文件,并且名字只能是abc,如何保留文件原有的名字和文件类型?
    "UpLoads/" + FileUpload1.FileName;

    5、如何防止重名覆盖的问题?
    "UpLoads/" + Request.Cookies["user"].Value + DateTime.Now.ToString("yyyyMMddhhmmssms") + FileUpload1.FileName;

    6、如何限制选中文件的类型?
    限制普通人,给控件添加属性 - accept=".jpg,.png,.jpeg,.txt"
    限制找事的:

     1 document.getElementById("Button1").onclick = function () {
     2 var fileName = document.getElementById("FileUpload1").value;
     3 
     4 var name = fileName.substr(fileName.length - 4, 4);
     5 var name1 = fileName.substr(fileName.length - 5, 5);
     6 if (name != ".jpg" && name != ".png" && name != ".txt" && name1 != ".jpeg")
     7 {
     8 alert("请选择正确的文件!你要找事儿啊??");
     9 return false;
    10 } 
    11 };

    7、控制上传文件的大小
    扩容 - 系统默认允许最大上传长度是4MB
    webconfig配置文件中写入

    <system.web>
    <compilation debug="false" targetFramework="4.0" />
    <httpRuntime maxRequestLength="40000" />
    </system.web>

    百度搜,研究,C#大文件上传,断点续传。

    注意!不要扩的太多,否则多人同时上传大文件会造成服务器内存不足!

    限制大小
    C#端限制:

    if (FileUpload1.PostedFile.ContentLength>(4*1024*1024))
    {
    Label1.Text = "文件长度过长!!!";
    return;
    }

    JS端限制:

    var f = document.getElementById("FileUpload1");
    
    if (f.files[0].size > (4 * 1024 * 1024)) {
    alert("文件过大!!!");
    return false;
    }

    案例:

    界面:

     1 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
     2 
     3 <!DOCTYPE html>
     4 
     5 <html xmlns="http://www.w3.org/1999/xhtml">
     6 <head runat="server">
     7 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
     8     <title></title>
     9 </head>
    10 <body>
    11     <form id="form1" runat="server">
    12     <div>
    13         <asp:FileUpload ID="FileUpload1" runat="server" accept=".jpg,.png,.jpeg,.txt" />
    14         <asp:Button ID="Button1" runat="server" Text="上传" />
    15         <asp:Label ID="Label1" runat="server" Text=""></asp:Label>
    16     </div>
    17     </form>
    18 </body>
    19 </html>
    20 <script type="text/javascript">
    21     document.getElementById("Button1").onclick = function () {
    22         //限制选中文件的类型
    23         var fileName = document.getElementById("FileUpload1").value;
    24         var name = fileName.substr(fileName.length-4,4);//文件名后4位
    25         var name1 = fileName.substr(fileName.length - 5, 5);//文件名后5位
    26         if(name!=".jpg"&&name!=".png"&&name!=".txt"&&name1!=".jpeg")
    27         {
    28             alert("请选择正确的文件类型!!");
    29             return false;
    30         }
    31         //限制大小
    32         var fu = document.getElementById("FileUpload1");
    33         //fu.files[0].size 选中文件的长度
    34         if (fu.files[0].size > (4 * 1024 * 1024)) {
    35             alert("文件过大");
    36             return false;
    37         }
    38     }
    39 </script>
    界面

    后台:

     1 using System;
     2 using System.Collections.Generic;
     3 using System.Linq;
     4 using System.Web;
     5 using System.Web.UI;
     6 using System.Web.UI.WebControls;
     7 
     8 public partial class _Default : System.Web.UI.Page
     9 {
    10     protected void Page_Load(object sender, EventArgs e)
    11     {
    12         Button1.Click += Button1_Click;
    13     }
    14 
    15     void Button1_Click(object sender, EventArgs e)
    16     {
    17         //若为选择文件
    18         if (FileUpload1.FileName.Length <= 0)
    19         {
    20             Label1.Text = "请选择文件!";
    21             return;
    22         }
    23         //若上传文件大于设置的最大长度
    24         if(FileUpload1.PostedFile.ContentLength>(4*1024*1024))
    25         {
    26             Label1.Text = "文件过大!";
    27             return;
    28         }
    29         //上传路径
    30         string path = "Uploads" + DateTime.Now.ToString("yyyyMMddhhmmssms") + FileUpload1.FileName;
    31         string endpath = Server.MapPath(path);
    32         //保存到路径中
    33         FileUpload1.SaveAs(endpath);
    34 
    35 
    36     }
    37 }
    后台:
     1 <?xml version="1.0" encoding="utf-8"?>
     2 
     3 <!--
     4   有关如何配置 ASP.NET 应用程序的详细信息,请访问
     5   http://go.microsoft.com/fwlink/?LinkId=169433
     6   -->
     7 
     8 <configuration>
     9 
    10     <system.web>
    11       <compilation debug="false" targetFramework="4.0" />
    12       <httpRuntime maxRequestLength="4096"/>
    13     </system.web>
    14 
    15 </configuration>
    Web.config
  • 相关阅读:
    MSSQL如何将查询结果拼接成字符串
    SQL删除指定条件的重复数据,只保留一条
    清除日志
    jsp使用
    Eclipse使用
    SSM框架开发遇到的问题
    SpringMvc学习
    大中华~~汉字
    Word技巧设置
    AWS-资源访问慢分析
  • 原文地址:https://www.cnblogs.com/maxin991025-/p/6255481.html
Copyright © 2011-2022 走看看