在 ASP.NET 2.0 中上载文件(多个文件同时上传)--青蛙非王子(lostfrog)

使用el-upload上传视频和文档,并且展示,真实项目中案例 播放文档简单,没什么方法,播放视频需要获取视频时长,暂停时的方法。效果:不管是新增视频还是pdf文档都可以,并且自带出文件的名称。 阅读详情

在 ASP.NET 2.0 中上载文件

 

适用于:

Microsoft ASP.NET 2.0
Microsoft Visual Web Developer 2005 Express Edition

摘要:了解如何使用 Microsoft ASP.NET 2.0 中新增的 FileUpload 服务器控件。

*
 

简介

自引入 Microsoft ASP.NET 版本 1.0 之日起,就存在生成 Web 应用程序的内置方法,这些方法能够将文件上载到宿主服务器。这是通过使用 File Field HTML 服务器控件实现的。我以前写过一篇关于如何在 ASP.NET 应用程序中有效使用该控件的 MSDN 文章。本文将再次介绍文件上载过程,但不是使用 File Field 控件,我将向您介绍如何有效使用 ASP.NET 2.0 提供的新 FileUpload 服务器控件。

虽然本文向您介绍新增的 FileUpload 服务器控件,但现在仍然可以在应用程序中使用 File Field 控件,注意到这一点是非常重要的。

FileUpload 服务器控件示例

在 ASP.NET 1.x 中使用 File Field 控件时,必须采取一些额外的步骤才能使一切有条不紊地正常运行。例如,您需要亲自将 enctype="multipart/form-data" 添加到页面的 <form> 元素中。ASP.NET 2.0 中提供的新 FileUpload 服务器控件使将文件上载到宿主服务器的过程尽可能的简单。

最后,您试图允许对 HTML <input type="file">标记进行编程。该标记用于与 HTML 窗体中的文件数据一起使用。过去使用传统的 ASP(ASP 3.0 或更早的版本)时,许多程序员使用第三方组件将文件从客户端上载到服务器。现在,通过 .NET 和该新控件可以进行上载。清单 1 显示如何使用 FileUpload 控件将文件上载到服务器。

注 提供 Microsoft Visual Basic 和 C# 形式的示例代码。

清单 1. 使用 FileUpload 控件将文件上载到服务器

Visual Basic

<%@ Page Language="VB" %>
<script runat="server">
    Protected Sub Button1_Click(ByVal sender As Object, _
      ByVal e As System.EventArgs)
        If FileUpload1.HasFile Then
            Try
                FileUpload1.SaveAs("C:/Uploads/" & _
                   FileUpload1.FileName)
                Label1.Text = "File name: " & _
                   FileUpload1.PostedFile.FileName & "<br>" & _
                   "File Size: " & _
                   FileUpload1.PostedFile.ContentLength & " kb<br>" & _
                   "Content type: " & _
                   FileUpload1.PostedFile.ContentType
            Catch ex As Exception
                Label1.Text = "ERROR: " & ex.Message.ToString()
            End Try
        Else
            Label1.Text = "You have not specified a file."
        End If
    End Sub
</script>

<HTML xmlns="http://www.w3.org/1999/xHTML" >
<head runat="server">
    <title>Upload Files</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <ASP:FileUpload ID="FileUpload1" runat="server" /><br />
        <br />
        <ASP:Button ID="Button1" runat="server" OnClick="Button1_Click" 
         Text="Upload File" /> <br />
        <br />
        <ASP:Label ID="Label1" runat="server"></ASP:Label></div>
    </form>
</body>
</HTML>

C#

<%@ Page Language="C#" %>
<script runat="server">
    protected void Button1_Click(object sender, EventArgs e)
    {
        if (FileUpload1.HasFile)
            try
            {
                FileUpload1.SaveAs("C://Uploads//" + 
                     FileUpload1.FileName);
                Label1.Text = "File name: " +
                     FileUpload1.PostedFile.FileName + "<br>" +
                     FileUpload1.PostedFile.ContentLength + " kb<br>" +
                     "Content type: " +
                     FileUpload1.PostedFile.ContentType;
            }
            catch (Exception ex)
            {
                Label1.Text = "ERROR: " + ex.Message.ToString();
            }
        else
        {
            Label1.Text = "You have not specified a file.";
        }
    }
</script>

<HTML xmlns="http://www.w3.org/1999/xHTML" >
<head runat="server">
    <title>Upload Files</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <ASP:FileUpload ID="FileUpload1" runat="server" /><br />
        <br />
        <ASP:Button ID="Button1" runat="server" OnClick="Button1_Click" 
         Text="Upload File" /> <br />
        <br />
        <ASP:Label ID="Label1" runat="server"></ASP:Label></div>
    </form>
</body>
</HTML>

运行该页,如果看看为该页生成的源代码,就会注意到一些问题。清单 2 列出这段源代码。

清单 2. FileUpload 控件生成的源代码

<HTML xmlns="http://www.w3.org/1999/xHTML" >
<head><title>
   Upload Files
</title></head>
<body>
    <form name="form1" method="post" action="MyFileUpload.ASPx" 
     id="form1" enctype="multipart/form-data">
<div>
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUJNDcxNTg5NDg3D2QWAgIEDxYCHgdlbmN0eXBlBRNtdWx0aXBhcnQvZm9yb
       S1kYXRhZGQUQEUFMY1+/fp1mnrkbqmVNQIzFA==" />
</div>

    <div>
        <input type="file" name="FileUpload1" id="FileUpload1" /><br />
        <br />
        <input type="submit" name="Button1" value="Upload File" 
         id="Button1" /> <br />
        <br />
        <span id="Label1"></span>
    </div>
    
<div>

   <input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" 
    value="/wEWAgLB+7jIAwKM54rGBv2Iz6LxVY7jWec0gZMxnuaK2ufq" />
</div></form>
</body>
</HTML>

首先要注意的是,由于 FileUpload 控件位于该页上,因此 ASP.NET 2.0 通过添加相应的 enctype 属性来代替您修改该页的 <form> 元素。您还会注意到,FileUpload 控件被转换为一个 HTML <input type="file">元素。

清单 1 中的页面运行后,您可以选择一个文件,然后通过单击该页上的 Upload File 按钮将它上载到服务器。针对该示例,我们需要重温一些重要的事项,以便理解实现该操作所需的所有步骤。要使清单 1 中的示例生效,必须使服务器上的目标文件夹对于 ASP.NET 使用的帐户是可写的,这样才能将文件保存到指定的文件夹中。

如果您认为自己的 ASP.NET 帐户不能写入希望的文件夹,则只需打开 Microsoft Windows Explorer,然后定位到要添加该权限的文件夹即可。右击该文件夹(本例中为 Uploads 文件夹),然后选择 Properties。在 Properties 对话框中,单击 Security 选项卡,确保列表中包括 ASP.NET 机器帐户,该帐户具有写入磁盘的适当权限(请参见图 1)。


图 1. 查看 Uploads 文件夹的 Security 选项卡

如果在 Security 选项卡下没看到 ASP.NET 机器帐户,可以通过单击 Add 按钮并在文本区域中输入 ASPNET(没有期限)来添加该帐户,如图 2 所示。


图 2. 将 ASP.NET 机器帐户添加到文件夹安全性定义中

单击 OK,将 ASP.NET 机器帐户添加到列表中。在此,请确保为该帐户赋予了适当的权限,然后单击 OK,这样就准备就绪了。

该页上的 Submit 按钮会引发 Button1_Click 事件发生。该事件上载文件,然后显示一条消息,通过发布有关已上载文件的信息来告诉您上载是否成功。如果上载失败,则该页显示一条描述上载失败原因的错误消息。

通过使用将自己转换为<input type="file"> 标记的 FileUpload 控件,浏览器自动将一个 Browse 按钮放在 ASP.NET 页上的文本字段旁边。无需进行任何编程,就会出现这种情况。当最终用户单击 Browse 按钮时,他可以浏览本地文件系统以查找要上载到服务器的文件。如图 3 所示。单击 Open 将把文件名和该文件的路径放到文本字段中。


图 3. 选择文件

解决文件大小限制

您可能没意识到,但对于可以使用该技术上载的文件的大小存在限制。默认情况下,使用 FileUpload 控件上载到服务器的文件最大为 4MB 左右。不能上载超过该限制的任何内容。

然而,关于 .NET 的重要一点是,它通常会提供一种规避限制的方法。您通常可以更改正在使用的默认设置。要更改大小限制,可以在 web.config.comments 文件(可以在 C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/CONFIG 的 ASP.NET 2.0 配置文件夹中找到)或应用程序的 web.config 文件中进行一些改动。

在 web.config.comments 文件中,查找一个名为 <executionTimeout>的节点,如下所示:

<httpRuntime 
 executionTimeout="110" 
 maxRequestLength="4096" 
 requestLengthDiskThreshold="80" 
 useFullyQualifiedRedirectUrl="false" 
 minFreeThreads="8" 
 minLocalRequestFreeThreads="4" 
 appRequestQueueLimit="5000" 
 enableKernelOutputCache="true" 
 enableVersionHeader="true" 
 requireRootedSaveASPath="true" 
 enable="true" 
 shutdownTimeout="90" 
 delayNotificationTimeout="5" 
 waitChangeNotification="0" 
 maxWaitChangeNotification="0" 
 enableHeaderChecking="true" 
 sendCacheControlHeader="true" 
 apartmentThreading="false" />

在这个节点上进行了许多操作,但负责上载文件大小的设置是 maxRequestLength 属性。默认情况下,该属性设置为 4096 千字节 (KB)。只需更改此值,就可以增加可上载到服务器的文件大小。如果想要允许将 10 兆字节 (MB) 的文件上载到服务器,则将 maxRequestLength 值设置为 11264,这意味着该应用程序允许将最大为 11000 KB 的文件上载到服务器。

在 web.config.comments 文件中进行此改动会将该设置应用于服务器上的所有应用程序。如果要将该设置仅应用于正在使用的应用程序,则将该节点应用于应用程序的 web.config 文件,覆盖 web.config.comments 文件中的所有设置。请确保该节点位于配置文件中的 <system.web> 节点之间。

与上载文件大小限制有关的另一个设置是赋给 <httpRuntime> 节点中 executionTimeout 属性的值。

赋给 executionTimeout 属性的值是 ASP.NET 关闭前允许发生的上载秒数。如果要允许将更大的文件上载到服务器,则还要增加该值和 maxRequestLength 值。

增加可上载文件大小的一个缺点是,存在通过发出大量请求来攻击服务器的黑客。要避免这种情况,可以减小允许上载的文件大小;否则,可能会发现数百个甚至上千个 10 MB 的请求访问您的服务器。

客户端验证允许上载的文件类型

有几种方法可以用来控制上载到服务器的文件类型。遗憾的是,没有一种十全十美的方法可以防御其他人上载恶意的文件。然而,您可以采取一些步骤,以使这个允许最终用户上载文件的过程更易于管理。

一个可用的好方法是使用 ASP.NET 免费提供的 ASP.NET 验证控件。这些控件使您可以对正在上载的文件进行正则表达式检查,看看文件的扩展名是否在允许上载的扩展名之列。

因为该方法强制在客户端进行检查,所以对于允许在客户端使用验证控件的浏览器而言,这是一个理想的选择;如果签名不是您允许的签名,则该文件不能上载到服务器。清单 3 显示一个使用验证控件完成该任务的示例。

注 此处不介绍验证控件的用法。有关验证控件的完整解释以及如何在 ASP.NET 页中使用它们,请参阅 Validating ASP.NET Server Controls。

清单 3. 使用验证控件限制上载到服务器的文件类型

<ASP:FileUpload ID="FileUpload1" runat="server" /><br />
<br />
<ASP:Button ID="Button1" runat="server" OnClick="Button1_Click" 
 Text="Upload File" /> <br />
<br />
<ASP:Label ID="Label1" runat="server"></ASP:Label>
<ASP:RegularExpressionValidator 
 id="RegularExpressionValidator1" runat="server" 
 ErrorMessage="Only mp3, m3u or mpeg files are allowed!" 
 ValidationExpression="^(([a-zA-Z]:)|(//{2}/w+)/$?)(//(/w[/w].*))
    +(.mp3|.MP3|.mpeg|.MPEG|.m3u|.M3U)___FCKpd___4quot; 
 ControlToValidate="FileUpload1"></ASP:RegularExpressionValidator>
<br />
<ASP:RequiredFieldValidator 
 id="RequiredFieldValidator1" runat="server" 
 ErrorMessage="This is a required field!" 
 ControlToValidate="FileUpload1"></ASP:RequiredFieldValidator>

这个简单的 ASP.NET 页使用验证控件,这样最终用户就只能将 .mp3、.mpeg 或 .m3u 文件上载到服务器。如果文件类型不是以上可选的文件类型,则 Validation 控件向屏幕抛出一个异常。如图 4 所示。


图 4. 使用验证控件验证文件类型

对于上载到服务器的文件,使用 Validation 控件不是一个对其进行控制的有效方法。更改一个文件的文件扩展名并不太困难,因此扩展名将被接受并上载到服务器,从而可以避开这个简单的安全模型。

增加服务器端文件类型验证

您刚才看到一种将一些 ASP.NET 验证服务器控件添加到 ASP.NET 页,以便在客户端对文件扩展名进行验证(以文本方式)的简单方法。现在,让我们看看如何在服务器端执行类似的操作。如清单 4 所示。

清单 4. 检查服务器上的文件类型

Visual Basic

    Protected Sub Button1_Click(ByVal sender As Object, _
      ByVal e As System.EventArgs)
        If FileUpload1.HasFile Then
            Dim fileExt As String
            fileExt = System.IO.Path.GetExtension(FileUpload1.FileName)
            
            If (fileExt = ".mp3") Then
                Try
                    FileUpload1.SaveAs("C:/Uploads/" & _
                       FileUpload1.FileName)
                    Label1.Text = "File name: " & _
                      FileUpload1.PostedFile.FileName & "" & _
                      "File Size: " & _
                      FileUpload1.PostedFile.ContentLength & " kb" & _
                      "Content type: " & _
                      FileUpload1.PostedFile.ContentType
                Catch ex As Exception
                    Label1.Text = "ERROR: " & ex.Message.ToString()
                End Try
            Else
                Label1.Text = "Only .mp3 files allowed!"
            End If
        Else
            Label1.Text = "You have not specified a file."
        End If
    End Sub

C#

    protected void Button1_Click(object sender, EventArgs e)
    {

        if (FileUpload1.HasFile)
        {
            string fileExt = 
               System.IO.Path.GetExtension(FileUpload1.FileName);

            if (fileExt == ".mp3")
            {
                try
                {
                    FileUpload1.SaveAs("C://Uploads//" + 
                       FileUpload1.FileName);
                    Label1.Text = "File name: " +
                        FileUpload1.PostedFile.FileName + "" +
                        FileUpload1.PostedFile.ContentLength + " kb" +
                        "Content type: " +
                        FileUpload1.PostedFile.ContentType;
                }
                catch (Exception ex)
                {
                    Label1.Text = "ERROR: " + ex.Message.ToString();
                }
            }
            else
            {
                Label1.Text = "Only .mp3 files allowed!";
            }
        }
        else
        {
            Label1.Text = "You have not specified a file.";
        }
    }

现在,通过在 System.IO.Path 命名空间中使用 GetExtension 方法,基本可以执行相同的操作。对于最终用户而言,只需将文件扩展名更改为可以生效的名称并将更改的文件上载到宿主服务器的功能不会有所影响,注意到这一点非常重要。

同时上载多个文件

目前为止,已经有几个不错的示例说明了如何不费周折地将文件上载到服务器。现在,让我们看看如何从一个页面将多个文件上载到服务器。

Microsoft .NET Framework 中没有任何内置功能使您可以从一个 ASP.NET 页上载多个文件。然而,只需要少量工作,您就可以像过去使用 .NET 1.x 那样完成此任务。

方法是将 System.IO 类导入到 ASP.NET 页中,然后使用 HttpFileCollection 类捕获通过 Request 对象发送来的所有文件。该方法使您可以从一个页面上载所需数量的文件。

如果需要,您完全可以分别处理该页上的每个 FileUpload 控件,如清单 5 所示。

清单 5. 分别处理每个 FileUpload 控件

Visual Basic

If FileUpload1.HasFile Then
   ' Handle file
End If

If FileUpload2.HasFile Then
   ' Handle file
End If

C#

if (FileUpload1.HasFile) {
   // Handle file
}

if (FileUpload2.HasFile) {
   // Handle file
}

该方法有效,但可能存在这种情况:您要使用 HttpFileCollection 类处理文件,特别是在处理动态生成的服务器控件列表时。

针对这种情况的示例,您可以生成一个 ASP.NET 页,该页有三个 FileUpload 控件和一个 Submit 按钮(使用 Button 控件)。用户单击 Submit 按钮并且文件被发布到服务器之后,隐藏的代码将文件保存到服务器上的特定位置。保存文件后,在 ASP.NET 页上显示已发布的文件信息(请参见清单 6)。

清单 6. 将多个文件上载到服务器

Visual Basic

Protected Sub Button1_Click(ByVal sender As Object, _
   ByVal e As System.EventArgs)

   Dim filepath As String = "C:/Uploads"
   Dim uploadedFiles As HttpFileCollection = Request.Files
   Dim i As Integer = 0

   Do Until i = uploadedFiles.Count
     Dim userPostedFile As HttpPostedFile = uploadedFiles(i)

     Try
        If (userPostedFile.ContentLength > 0) Then
           Label1.Text += "File #" & (i + 1) & ""
           Label1.Text += "File Content Type: " & _
              userPostedFile.ContentType & ""
           Label1.Text += "File Size: " & _
              userPostedFile.ContentLength & "kb"
           Label1.Text += "File Name: " & _
              userPostedFile.FileName & ""

           userPostedFile.SaveAs(filepath & "/" & _
              System.IO.Path.GetFileName(userPostedFile.FileName))

           Label1.Text += "Location where saved: " & _
              filepath & "/" & _
              System.IO.Path.GetFileName(userPostedFile.FileName) & _
              "
"
        End If
     Catch ex As Exception
        Label1.Text += "Error:" & ex.Message
     End Try
     i += 1
   Loop
End Sub

C#

protected void Button1_Click(object sender, EventArgs e)
{
   string filepath = "C://Uploads";
   HttpFileCollection uploadedFiles = Request.Files;
    
   for (int i = 0; i < uploadedFiles.Count; i++)
   {    
      HttpPostedFile userPostedFile = uploadedFiles[i];
    
      try
      {    
         if (userPostedFile.ContentLength > 0 )
         {
            Label1.Text += "File #" + (i+1) + 
               "";
            Label1.Text += "File Content Type: " + 
               userPostedFile.ContentType + "";
            Label1.Text += "File Size: " + 
               userPostedFile.ContentLength + "kb";
            Label1.Text += "File Name: " + 
               userPostedFile.FileName + "";
    
            userPostedFile.SaveAs(filepath + "//" + 
               System.IO.Path.GetFileName(userPostedFile.FileName));
    
            Label1.Text += "Location where saved: " + 
               filepath + "//" + 
               System.IO.Path.GetFileName(userPostedFile.FileName) + 
               "
";
         }    
      } 
      catch (Exception Ex)
      {    
         Label1.Text += "Error: " + Ex.Message;    
      }    
   }    
}

最终用户最多可以选择四个文件,然后单击 Upload Files 按钮,该按钮会初始化 Button1_Click 事件。使用 HttpFileCollection 类和 Request.Files 属性使您可以控制从该页上载的所有文件。当这些文件处于此状态时,您可以对它们进行任何操作。在本例中,检查文件的属性并将它们输出到屏幕上。最后,这些文件保存到服务器根目录的 Uploads 文件夹中。该操作的结果如图 5 所示。


图 5. 一次将一个 ASP.NET 页上的四个文件上载到服务器

您可能已经注意到,该示例有趣的一点是,文件输入文本框的状态没有通过回发进行保存。在图 5 中您可以看到这一点。在 ASP.NET 中,无法保存文件输入文本框的状态,因为这么做可能会引发安全风险。

小结

ASP.NET 提供的 FileUpload 服务器控件是一个强大的控件,在 Active Server Pages 3.0 时代实现该控件非常困难。这个新增的功能允许最终用户将一个或多个文件上载到服务器。请记住,通过利用 web.config.comments 或 web.config 文件中的设置,您可以控制文件的大小。

多文件上传解决方案:ASP.NET 2.0与FileUpload控件实战指南 异步文件上传技术使得用户体验更加流畅,不需要等待整个页面刷新就可以上传文件。它对于带宽有限的用户来说是一个福音,因为他们无需承担整个页面重载带来的额外数据传输。此外,异步上传也使得实时反馈成为可能,用户可以即时看到上传进度,并在上传完成后立即得到服务器的响应。 阅读详情

相关推荐

西电微机系统课程设计——步进电机开环控制系统设计

西电微机系统课程设计——步进电机开环控制系统设计 一、课程设计目的 1.掌握微机系统总线与各芯片管脚连接方法,提高接口扩展硬件电路的连接能力。 2.加深对 A/D 和并行接口芯片的工作方式和编程方法的理解。 3.搞懂步进电机的工作原理及控制方式,掌握开环控制系统的设计思路和实现方法。 二、课程设计的内容 手动调节电位器旋钮(0V~5V),通过 ADC0809 模拟输入水库水位 0 米~50 米,CPU收到水位信号后,根据水位高度控制步进电机(水闸)进行调节。 三、系统功能与设计要求 基本功能要求 手

OutlierLi's Blog 7524

在 ASP.NET 2.0 中上载文件

在 ASP.NET 2.0 中上载文件 发布日期: 2006-4-5 | 更新日期: 2006-4-5Bill EvjenReuters适用于:Microsoft ASP.NET 2.0Microsoft Visual Web Developer 2005 Express Edition摘要:了解如何使用 Microsoft ASP.NET 2.0 中新增的 FileU

erphome8的专栏 753

STM32 HAL库下DHT22高精度温湿度采集与30秒定时实现

单总线传感器(如DHT22)是嵌入式环境监测系统的核心数据源,其通信依赖微秒级精确时序控制。在STM32平台中,需结合硬件定时器(如TIM2)构建稳定周期触发机制,并通过GPIO+精确延时(非HAL_Delay)完成协议解析。该方案突破整数读取局限,完整还原带一位小数的温度与湿度值,显著提升工业级数据精度。典型应用于物联网终端、智能农业节点及边缘侧环境监控系统,为MQTT/CoAP等协议上报提供结构化原始数据支撑。本实践基于STM32F103与HAL库,不依赖第三方驱动,具备强可移植性与工程鲁棒性。

weixin_42453228的博客 513

C#基础一、控件:FileUpload控件详解

C#基础一、控件:FileUpload控件详解           其实我最讨厌总结什么的,无奈记性不好,突然觉得粘贴到Word文档里面有点容易丢失,就借助一下空间资源 (太有才了),这可是第一篇,谢谢!          FileUpload控件是这个样子的: 其实就是一个按钮,一个文本框,组合一起打扮一下就成这样的了:(web端的显示),不过没啥了不起的,我个人认为还是“素颜”的好

jinglong512741的专栏 9158

Windows 11安装 SQLServer 2008 R2 失败问题处理

Windows 11安装SQL Server 2008 R2失败解决方案 由于Windows 11移除了对PowerShell 2.0的支持,导致SQL Server 2008 R2安装失败。经过多次尝试,最终通过**方案六(修改注册表模拟PowerShell 2.0环境)**成功安装。其他可行方案包括: 使用SP3集成版安装包 通过命令行跳过检查(/SUPPRESSPOWERShellCHECK参数) 创建特殊配置文件 替代方案建议: 使用Docker容器运行 在虚拟机中安装 升级到新版SQL Serve

oDengWei的博客 7158

Teams会议翻译对比测试:Copilot同传 vs 人工翻译,结果出乎意料

本文通过对比测试Microsoft 365 Copilot的实时翻译与专业人工翻译在Teams会议中的表现,揭示了AI同传技术在准确率、响应速度和多语言切换方面的优势与局限。实验数据显示,Copilot在常规商务场景下接近人工翻译水平,且成本效益显著,但在专业术语和文化特定表达上仍需人工辅助。

weixin_29054195的博客 224

el-upload 上传视频并回显

el-upload上传视频,并且显示上传的视频。

Aa12364567的博客 2130

HyperMesh 2025新功能尝鲜:用Volume Tetramesh一键生成工业级四面体网格

HyperMesh 2025推出的Volume Tetramesh功能,通过“体到体”的全新范式,实现了工业级四面体网格的一键生成。该功能利用Proximity与Curvature参数智能识别并加密几何特征,将工程师从繁琐的几何清理和表面网格划分中解放出来,在保证网格质量的同时,显著提升了前处理效率,尤其适用于发动机缸体等复杂模型的仿真分析。

weixin_29229055的博客 477

ASP.NET中多文件一同上传

ASP.NET中多文件一同上传,并进行保存

weixin_55102157的博客 1751

MMCV安装后报错‘from mmcv import Config’?别慌,这是MMCV 2.0的锅!快速降级回退MMCV 1.x全指南

本文详细解析了MMCV 2.0版本升级导致的‘from mmcv import Config’报错问题,提供了从诊断到降级回退MMCV 1.x的完整解决方案。通过pip和OpenMIM工具链的实操指南,帮助开发者快速解决版本冲突,确保项目稳定运行。

weixin_29102619的博客 263

Windows 11安装realtek audio control

Windows 11安装realtek audio control,解决无法链接RPC问题

m0_46144825的博客 8万+

ASP.NET 2.0 中的代码隐藏和编译--青蛙非王子(lostfrog)

ASP.NET 2.0 中的代码隐藏和编译本页内容当我撰写本专栏的时候,Microsoft® .NET Framework 2.0 和 Visual Studio®2005 的候选版本已经“出炉”了,当您阅读到本文时,它们都已经投入使用。这一切似乎等待了很长时间。我还记得在 2003 年的 8 月坐在 Microsoft 公司的一个房间内倾听 Scott Guthrie 和其他人(

.net成长手札 962

AI Agent的数据安全与隐私保护措施

AI Agent(人工智能代理)作为一种能够感知环境、做出决策并采取行动的智能实体,在现代社会的各个领域中得到了广泛的应用,如智能客服、自动驾驶、金融风险评估等。随着其应用的不断拓展,AI Agent处理和存储的数据量急剧增加,这些数据包含了大量的个人敏感信息和商业机密。因此,确保AI Agent的数据安全与隐私保护变得至关重要。本文的目的在于全面探讨AI Agent的数据安全与隐私保护措施,涵盖从数据的采集、存储、处理到传输的整个生命周期。

AGI×大数据,开启智能时代的认知跃迁;解码AGI,赋能数据驱动的智能革命。 2866

asp.net2.0多语言版本网站软件的实现--青蛙非王子(lostfrog)

1.     跟以前一样做界面,只是注意,把所有需要有多语言界面的文字都用label来做,当然gridview等等也可以2 .   做完以后,在vs2005里打开这个文件(注意:一定是在设计模式下,否则生成本地资源将会灰掉),选工具->生成本地资源3 .   你会发现生成了一个目录,App_LocalResources;这个目录里多了一个resx的文件。比如你的aspx文件是default

.net成长手札 2496

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

ASP.NET极限:页面导航 (翻译)--青蛙非王子(lostfrog)

 Rob Howard 在我的小时候,我每年都会花几周的时间呆在我的大家庭里。作为一个年幼的美国小男孩我当时非常着迷荷兰电力火车,一些在我的家乡--德克萨斯州达拉斯所没有见到过的事情。我的堂兄招待我乘坐他们的小船去看经过的火车。坐在靠近车轨的水上可以听到渐近的火车,像是轻轻的口哨穿过铁轨,直到火车呼叫而过时奏出一个缓慢的高潮。在考虑ASP.NET 2.0时使我不由想起了这个。ASP.NET

.net成长手札 1526

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Visual Studio 2005常用插件搜罗 --青蛙非王子(lostfrog)

Visual Studio 2005常用插件搜罗         [本期看点:从Visual Studio2003升级到Visual Studio 2005]Visual Studio 2005 为我们带来了新的编程体验,提供了从需求分析到最终测试整个软件生命开发周期的解决方案。 但是

.net成长手札 1331

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

在asp.net2.0中手动写"添加"事件、判断重复--青蛙非王子(lostfrog)

终于解决了,网上很多教程 害人不浅啊,用了一大堆垃圾代码。我的程序:        SqlDataSource2.SelectCommand = "Select count(*) from [TBFiscalCalendar] where YearMonth = " + NewYM + "";        SqlConnection myCon=new SqlConnection(S

.net成长手札 1438

用ASP.NET建立一个在线RSS新闻聚合器--青蛙非王子(lostfrog)

概要   本文讲解了如何使用 XML Web 控件获取远程XML数据并在 ASP.NET 页面显示这些XML数据,以及使用Repeater控件发布数据库中的XML数据。在过去的几年间,随着 异构平台间共享数据的需求不断增长,XML的使用也呈爆炸性增长。意识到这种趋势,微软在整个.NET框架中对 XML 提供了健壮的支持。这意味着,对于 ASP.NET 开发者来说,在Web页面 中显示和处理 XML

.net成长手札 1316

关于上传小附件的函数(小于4m)--青蛙非王子(lostfrog)

  private void UpFile()  {   if(UpLoadFile.PostedFile.ContentLength>0&&TextBox1.Text.Trim()!="")   {    string fileName=UpLoadFile.PostedFile.FileName.Substring(UpLoadFile.PostedFile.FileName.LastInde

.net成长手札 1281

DataGrid数据到excel--青蛙非王子(lostfrog)

    标题   将DataGrid数据写入Excel文件。     选择自 PPLUNCLE 的 Blog 关键字   将Da

.net成长手札 1054

关于asp.net2.0中树型菜单TreeView的动态添加--青蛙非王子(lostfrog)

有人问就写了段拉一个TreeView控件TreeView1然后在page_load里写上        TreeNode myNode = new TreeNode();        myNode.Text = "ttt";        TreeView1.Nodes.Add(myNode);        myNode.NavigateUrl = "ddddd";        Tree

.net成长手札 2365

自定义类在vs2005(asp.net2.0)中的引用--青蛙非王子(lostfrog)

如果你有一个自己写的类文件,比如database什么的,那就需要放到app_code文件夹下才能引用.引用方法就是类名.函数名如果你写的.cs文件是1.1的 那你就需要重新写一下拉

.net成长手札 1599

DataList绑定代码(http://msdn.microsoft.com)--青蛙非王子(lostfrog)

DataList绑定代码 MSDN的好东东。适合初学者。就像俺这样的基础薄弱者 大家见笑了 嘿[C#]      ICollection CreateDataSource()       {         DataTable dt = new DataTable();         DataRow dr;         dt.Columns.Add(new DataColumn(

.net成长手札 1804

.net2.0环境下多文件上传的实现。

           这几天领导要求开发一个系统,其中要求多文件上传,费了点事,总算是可以了,主要符合如下要求:1)        通过FileUpload控件选取要上传的文件;2)        上传前验证要上载的文件是否确实存在;3)        检查路径中是否已存在同名的文件。如果存在同名文件,则要为上载的文件的名称前加上一个数字作为前缀,防止现有文件被改写;4) 

damofeihong的专栏 575

fileupload工具上传

框架虽好,开发效率很高,但是

杜先生的专栏 905

jQuery File Upload 多文件 单击选中或多选文件直接自动上载 无需提交按钮

jQuery-File-Upload 插件地址:https://github.com/blueimp/jQuery-File-Upload 激活按钮,你可以用  CSS 绘制你喜欢的效果 select file ... HTML (页码上放置一个文件选择类型的控件,隐藏形式) javascript $('#fileupload').fileupload(

NULL BLOG 7314
上一篇: ASP.NET ViewState 初探--青蛙非王子(lostfrog)
下一篇: ASP.NET 2.0 中的代码隐藏和编译--青蛙非王子(lostfrog)
lostfrog
博客等级 码龄22年 0粉丝 31原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值