分享

aspx 文件上传和下载,多文件上传

 偷心无痕 2014-12-05

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="MultiFileUpload.aspx.cs"
  Inherits=
"MultiFileUpload"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www./TR/xhtml1/DTD/xhtml1-transitional.dtd"
>
<html xmlns="http://www./1999/xhtml">
<head runat="server">
 
<title>孟宪会多文件上传测试</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:TextBoxID="TextBox1" runat="server"></asp:TextBox>
 
<div id="_container">
   
<input type="file" size="50" name="File"/>
 
</div>
 
<div>
   
<input type="button" value="添加文件(Add)" onclick="addFile()"/>
 
</div>
 
<div style="padding:10px 0">
   
<asp:Buttonrunat="server" Text="开始上传" ID="UploadButton"
      onclick
="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>

C#代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

publicpartialclass MultiFileUpload : System.Web.UI.Page
{
   
protectedvoid 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;
      }

    }
}

下载

public void Download(string path) //要下载文件的名称
{  比如string path = "\\images\\a.text";自己检查自己的路径问题,有的需要添加上级目录 有的直接输入文件名就可
       if (!string.IsNullOrEmpty(path))     
       {             
          string filePath = Server.MapPath("")+path;//路径        
          // string filePath =@"C:\Users\Public\Pictures\Sample Pictures\1.jpg";
           FileInfo fileInfo = new FileInfo(filePath);         
           Response.Clear();                
           Response.ClearContent();           
           Response.ClearHeaders();               
           Response.AddHeader("Content-Disposition", "attachment;filename=" + fileInfo.Name);    
           Response.AddHeader("Content-Length", fileInfo.Length.ToString());                  
           Response.AddHeader("Content-Transfer-Encoding", "binary");                
           Response.ContentType = "application/octet-stream";                   
           Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312");   
           Response.WriteFile(fileInfo.FullName);             
           Response.Flush();               
           Response.End();             
       }
}

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约