ASP.NET实现多文件上传
类别:编程学习 浏览量:385
时间:2014-7-11 ASP.NET实现多文件上传
ASP.NET实现多文件上传一、固定数量的多文件上传
界面
上传的实现代码
//单击执行多文件上传
protected void btnFileUpload_Click(object sender, EventArgs e)
{
//判断是否存在上传文件
/*bool flag = false; ;
bool[] b = { FileUpload1.HasFile, FileUpload2.HasFile, FileUpload3.HasFile };
foreach (bool item in b)
{
if (item)
{
flag = true;
}
}*/
//判断是否存在上传文件
if (!FileUpload1.HasFile && !FileUpload2.HasFile && !FileUpload3.HasFile)
{
lblMessage.Text = "至少选择一个上传的文件!";
}
else
{
/*提供对客户端上载文件的访问,并组织这些文件,它是一个文件的集合.
Request.Files获取客户端上载文件的集合*/
HttpFileCollection filecoll = Request.Files;
//循环上传文件的集合,并上传每一个文件
for (int i = 0; i < filecoll.Count; i++)
{
/*得到上传的单个文件,
* 通过HttpPostedFile实例来处理单个上传文件的访问*/
HttpPostedFile myfile = filecoll[i];
//得到上传文件大小判断文件是否存在
if (myfile.ContentLength > 0)
{
if (myfile.ContentLength < 10485760)
{
try
{
//得到上传的文件名
myfile.SaveAs(Page.MapPath("~/Files/") +
myfile.FileName.Substring(myfile.FileName.LastIndexOf(@"\\") + 1));
//这里得到上传文件名的方式还可以是:
/* myfile.SaveAs(Page.MapPath("~/Files/")
+ System.IO.Path.GetFileName(myfile.FileName));*/
lblMessage.Text = "文件上传成功!";
}
catch (Exception)
{
lblMessage.Text = "上传文件发生错误!";
}
}
else
{
lblMessage.Text = "上传文件不能大于10MB";
}
}
}
}
}
二、动态的添加多文件上传:
界面
前端代码
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="MultiFileUpload.aspx。cs"
Inherits="MultiFileUpload" %>
<!DOCTYPE>
<html>
<head runat="server">
<title>多文件上传测试</title>
<script type="text/javascript">
function addFile() {
var li = document.createElement("li");
var f = document.createElement("input");
f.setAttribute("type", "file")
f.setAttribute("name", "File")
f.setAttribute("size", "50")
li.appendChild(f)
var d = document.createElement("input");
d.setAttribute("type", "button")
d.setAttribute("onclick", "deteFile(this)");
d.setAttribute("value", "移除")
li.appendChild(d)
document.getElementById("_container").appendChild(li);
}
function deteFile(o) {
while (o.tagName != "li") o = o.parentNode;
o.parentNode.removeChild(o);
}
</script>
</head>
<body>
<form id="form1" runat="server" method="post" enctype="multipart/form-data">
<h3>多文件上传</h3>
用户名:<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<li id="_container">
<input type="file" size="50" name="File" />
</li>
<li>
<input type="button" value="添加文件(Add)" onclick="addFile()" />
</li>
<li style="padding:10px 0">
<asp:Button runat="server" Text="开始上传" ID="UploadButton"
onclick="UploadButton_Click"></asp:Button>
</li>
<li>
<asp:Label ID="strStatus" runat="server" Font-Names="宋体" Font-Bold="True" Font-Size="9pt"
Width="500px" BorderStyle="None" BorderColor="White"></asp:Label>
</li>
</form>
</body>
</html>
后台代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class MultiFileUpload : System.Web.UI.Page
{
protected void UploadButton_Click(object sender, EventArgs e)
{
///'遍历File表单元素
HttpFileCollection files = HttpContext.Current.Request.Files;
/// '状态信息
System.Text.StringBuilder strMsg = new System.Text.StringBuilder("您输入的用户名是:" + TextBox1.Text + "<br/>");
strMsg.Append("上传的文件分别是:<hr color='red'/>");
try
{
for (int iFile = 0; iFile < files.Count; iFile++)
{
标签:上传
您可能感兴趣
- formdata上传图片参数(data:image data url 文件转为Blob上传后端的方法)
- 云服务器9兆带宽的上传速度是多少(云服务器网速多少怎么计算?云服务器的1兆带宽是多少的?)
- laravel 模块目录(Laravel框架文件上传功能实现方法示例)
- vuephp后台开发框架(Vue+thinkphp5.1+axios实现文件上传)
- 怎么用织梦上传源码(如何把织梦dedecms数据生成json)
- serv-u突然不允许上传(Serv-U 密匙冲突,Serv-U无法启动处于离线状态解决方法)
- vueaxios使用教程交流(Vue使用axios图片上传遇到的问题)
- asp.net中fileupload上传文件的方法
- dedecms水印(dedecms上传透明背景图片变成黑色的解决办法)
- pythonftp功能介绍(使用Python操作FTP实现上传和下载的方法)
- docker快速打包部署脚本(使用脚本一键打包并上传docker镜像的实现代码)
- html5导入图片文件(HTML5 实现图片上传预处理功能)
- js怎么上传压缩图片(如何用JS有效的压缩图片)
- python把文件上传服务器(Python 实现两个服务器之间文件的上传方法)
- asp.net判断上传文件格式
- php把当前网页生成pdf(php转换上传word文件为PDF的方法基于COM组件)
- 为什么越来越多年轻人回农村(为什么越来越多年轻人回农村生活)
- 怎么快速学好英语(怎么快速学好英语初中)
- 中国留学生都是富二代吗()
- 我们现在吃的苹果是哪里来的 原来现代苹果引入中国仅有一百多年(我们现在吃的苹果是哪里来的)
- 买绿宝不能只挑黄绿色 菜农教你3招挑,个个皮薄肉脆,香甜爆汁(买绿宝不能只挑黄绿色)
- 大果肉搭配薄瓜皮, 绿宝 脆甜爽口,不愧是甜瓜中的 佼佼者(大果肉搭配薄瓜皮)
热门推荐
- Extjs msgTarget 提示位置
- linux下安装nginx常见问题(Linux安装Nginx步骤详解)
- apache2.4支持php5.5吗(WINDOWS下php5.2.4+mysql6.0+apache2.2.4+ZendOptimizer-3.3.0配置)
- 服务器启动nginx服务的命令(Nginx服务器添加Systemd自定义服务过程解析)
- 阿里云服务器ecs入口(阿里云服务器ECS共享型和计算型有什么区别?)
- mybatis测试出现空指针(Mybatis非配置原因,导致SqlSession was not registered for synchronization异常)
- php实现redis核心代码(PHP结合Redis+MySQL实现冷热数据交换应用案例详解)
- dede织梦cms安装教程(开源织梦dedecms快速搬家图文教程)
- python自动识别旋转验证码(Python实现字符型图片验证码识别完整过程详解)
- python3.x base64怎么加密解密(python3.x实现base64加密和解密)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9