以下是实现 ASP.NET(C#)一次性动态上传多张图片的代码攻略。
1. 创建HTML表单
在HTML中创建一个包含多个文件的上传表单,可参考以下代码:
<form id="form1" runat="server" enctype="multipart/form-data">
<input type="file" name="File1" id="File1" multiple/>
<input type="submit" value="Upload" />
</form>
其中,enctype="multipart/form-data"
属性设置表单类型为文件上传类型,multiple
属性设置可以选择多个文件。
2. 处理上传请求
在C#代码中,需要编写一个处理上传请求的方法。可参考以下代码:
protected void Upload_Click(object sender, EventArgs e)
{
foreach (HttpPostedFile file in Request.Files)
{
if (file != null && file.ContentLength > 0)
{
string fileName = Path.GetFileName(file.FileName);
string filePath = Server.MapPath("~/UploadedFiles/") + fileName;
file.SaveAs(filePath);
}
}
}
其中,Request.Files
可以接收上传的文件,通过Path.GetFileName(file.FileName)
获取文件名,Server.MapPath("~/UploadedFiles/")
获取目标文件保存路径,最后保存到指定路径。
3. 完整代码
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebApplication.UploadFiles.Default" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server" enctype="multipart/form-data">
<input type="file" name="File1" id="File1" multiple/>
<input type="submit" value="Upload" onclick="Upload_Click"/>
</form>
</body>
</html>
using System;
using System.IO;
namespace WebApplication.UploadFiles
{
public partial class Default : System.Web.UI.Page
{
protected void Upload_Click(object sender, EventArgs e)
{
foreach (HttpPostedFile file in Request.Files)
{
if (file != null && file.ContentLength > 0)
{
string fileName = Path.GetFileName(file.FileName);
string filePath = Server.MapPath("~/UploadedFiles/") + fileName;
file.SaveAs(filePath);
}
}
}
}
}
4. 示例说明
示例1:保存到指定路径
在以上代码的基础上,可以修改保存文件路径,将文件保存到指定的文件夹。例如:
string fileFolder = @"D:\Uploads\";
string filePath = Path.Combine(fileFolder, fileName);
file.SaveAs(filePath);
其中,Path.Combine
方法可将多个字符串路径按照正确的格式组合成一个路径。
示例2:判断文件类型
修改代码,可添加判断文件类型的逻辑。例如:
string extension = Path.GetExtension(file.FileName);
if (extension.ToLower() == ".jpg" || extension.ToLower() == ".png")
{
string fileName = Path.GetFileName(file.FileName);
string filePath = Server.MapPath("~/UploadedFiles/") + fileName;
file.SaveAs(filePath);
}
其中,Path.GetExtension
方法可获取文件扩展名,通过判断扩展名是否是.jpg
或.png
,依据需求是否保存文件。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:ASP.NET(C#)实现一次性动态上传多张图片的代码(多个文件) - Python技术站