博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ASP.NET多文件上传实例
阅读量:5899 次
发布时间:2019-06-19

本文共 3173 字,大约阅读时间需要 10 分钟。

在Web应用程序开发中,避免不了要用到上传文件这个功能,但以前上传文件是个很麻烦的事,现在有了.NET,文件上传变得轻而易举。下面的这个例子实现了多文件上传功能。可以动态添加输入表单,上传的文件数量没有限制。代码如下:
<%@ Page Language=
"
C#
" AutoEventWireup=
"
true
" CodeFile=
"
MultiFileUpload.aspx.cs
"
  Inherits=
"
MultiFileUpload
" %>
<!DOCTYPE html PUBLIC 
"
-//W3C//DTD XHTML 1.0 Transitional//EN
"
"
http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd
">
<html xmlns=
"
http://www.w3.org/1999/xhtml
">
<head runat=
"
server
">
  <title>ASP.NET多文件上传测试</title>
  <script type=
"
text/javascript
">
    function addFile() {
      var div = document.createElement(
"
div
");
      var f = document.createElement(
"
input
");
      f.setAttribute(
"
type
"
"
file
")
      f.setAttribute(
"
name
"
"
File
")
      f.setAttribute(
"
size
"
"
50
")
      div.appendChild(f)
      var d = document.createElement(
"
input
");
      d.setAttribute(
"
type
"
"
button
")
      d.setAttribute(
"
onclick
"
"
deteFile(this)
");
      d.setAttribute(
"
value
"
"
移除
")
      div.appendChild(d)
      document.getElementById(
"
_container
").appendChild(div);
    }
    function deteFile(o) {
      
while (o.tagName != 
"
DIV
") 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>
  <div id=
"
_container
">
    <input type=
"
file
" size=
"
50
" name=
"
File
" />
  </div>
  <div>
    <input type=
"
button
" value=
"
添加文件(Add)
" οnclick=
"
addFile()
" />
  </div>
  <div style=
"
padding:10px 0
">
    <asp:Button runat=
"
server
" Text=
"
开始上传
" ID=
"
UploadButton
" 
      οnclick=
"
UploadButton_Click
"></asp:Button>
  </div>
  <div>
    <asp:Label ID=
"
strStatus
" runat=
"
server
" Font-Names=
"
宋体
" Font-Bold=
"
True
" Font-Size=
"
9pt
"
      Width=
"
500px
" BorderStyle=
"
None
" BorderColor=
"
White
"></asp:Label>
  </div>
  </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++)
        {
          
///
'检查文件扩展名字
          HttpPostedFile postedFile = files[iFile];
          
string fileName, fileExtension;
          fileName = System.IO.Path.GetFileName(postedFile.FileName);
          
if (fileName != 
"")
          {
            fileExtension = System.IO.Path.GetExtension(fileName);
            strMsg.Append(
"
上传的文件类型:
" + postedFile.ContentType.ToString() + 
"
<br>
");
            strMsg.Append(
"
客户端文件地址:
" + postedFile.FileName + 
"
<br>
");
            strMsg.Append(
"
上传文件的文件名:
" + fileName + 
"
<br>
");
            strMsg.Append(
"
上传文件的扩展名:
" + fileExtension + 
"
<br><hr>
");
            
///
'可根据扩展名字的不同保存到不同的文件夹
            
///
注意:可能要修改你的文件夹的匿名写入权限。
            postedFile.SaveAs(System.Web.HttpContext.Current.Request.MapPath(
"
images/
") + fileName);
          }
        }
        strStatus.Text = strMsg.ToString();
      }
      
catch (System.Exception Ex)
      {
        strStatus.Text = Ex.Message;
      }
    }
}

转载于:https://www.cnblogs.com/Jaylong/archive/2011/10/11/shc.html

你可能感兴趣的文章
MySQLDump在使用之前一定要想到的事情 [转载]
查看>>
PIE SDK矢量数据的读取
查看>>
两种方式分别改变alertdialog的宽和高
查看>>
TextView-setCompondDrawables用法
查看>>
淘宝Hadoop集群的概况
查看>>
Centos7安装rabbitmq server 3.6.0
查看>>
关于eclipse的ADT(插件)对xml的android:text属性检查修改
查看>>
iostat命令学习
查看>>
SQL 三种分页方式
查看>>
查看linux是ubuntu还是centos
查看>>
html video的url更新,自动清缓存
查看>>
IOS Xib使用——为控制器添加Xib文件
查看>>
CentOS 7.0默认使用的是firewall作为防火墙,这里改为iptables防火墙步骤
查看>>
react 取消 eslint
查看>>
【11】ajax请求后台接口数据与返回值处理js写法
查看>>
Python菜鸟之路:Jquery Ajax的使用
查看>>
LeetCode算法题-Maximum Depth of Binary Tree
查看>>
sha1withRSA算法
查看>>
Vim和操作系统剪贴板交互
查看>>
Cox 教学视频5
查看>>