蜗牛,在赛跑

--努力去改变吧
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

文件上传下载在vs2005下的实现

Posted on 2007-09-29 13:51  body  阅读(566)  评论(0编辑  收藏  举报

如此简单 代码如下利用response下载

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.IO;

public partial class _Default : System.Web.UI.Page
{
     protected void Page_Load(object sender, EventArgs e)
     {
         String directoryPath = Server.MapPath("upload/");
         DirectoryInfo dir = new DirectoryInfo(directoryPath);
         FileSystemInfo[] infos = dir.GetFileSystemInfos();
         ListItem myitem;
         foreach (FileSystemInfo myfile in infos)
         {
             myitem = new ListItem();
             myitem.Text = myfile.Name;
             myitem.Value = myfile.FullName;
             ListBox1.Items.Add(myitem);
         }
     }
     protected void Button1_Click(object sender, EventArgs e)
     {
         Boolean fileok = false;
         String path = Server.MapPath("upload/");
         if (FileUpload1.HasFile)
         {
             String fileextension = System.IO.Path.GetExtension(FileUpload1.FileName).ToLower();
             String[] allowedextensions ={ ".txt", ".doc", ".xml", ".jpg" };
             for (int i = 0; i < allowedextensions.Length; i++)
             {
                 if (fileextension == allowedextensions[i])
                 {
                     fileok = true;
                 }
             }
             if (FileUpload1.PostedFile.ContentLength > 1024000)
             {
                 fileok = false;
             }
             if (fileok)
             {
                 try
                 {
                     FileUpload1.PostedFile.SaveAs(path + FileUpload1.FileName);
                     Label1.Text = "上传成功!";
                 }
                 catch (Exception ex)
                 {
                     Label1.Text = "无法上传!"+ex.Message;
                 }
             }
             else
             {
                 Label1.Text = "文件类型不对或文件超出1M";
             }
         }

     }
     protected void Button2_Click(object sender, EventArgs e)
     {
         String selectname = ListBox1.SelectedItem.Value;
         String savafileName = ListBox1.SelectedItem.Text;
         FileInfo finfo = new FileInfo(selectname);
         Response.Clear();
         Response.Charset = "utf-8";
         Response.Buffer = true;
         this.EnableViewState = false;
         Response.ContentEncoding = System.Text.Encoding.UTF8;
         Response.AppendHeader("Content-Disposition", "attachment;filename=" + savafileName);
         Response.ContentType = "application/unknown";
         Response.WriteFile(selectname);
         Response.Flush();
         Response.Close();
         Response.End();
     }
}

==========================
界面设计如下