文件的上传和下载

news/2024/7/6 6:43:10

在Web编程中,我们常需要把一些本地文件上传到Web服务器上,上传后,用户可以通过浏览器方便地浏览这些文件,应用十分广泛。

那么使用C#如何实现文件上传的功能呢?

首先,在你的Visual C# web project 中增加一个上传用的Web Form,为了要上传文件,需要在ToolBox中选择HTML类的File Field控件,将此控件加入到Web Form中,然而此时该控件还不是服务端控件,我们需要为它加上如下一段代码:<input id=uploadfile1 type=file size=49 runat="server">,这样它就成为服务端控件了,如果需要同时上传数个文件时,我们可以相应增加此控件。

需要注意的是代码中一定要把<form>的属性设置成为:

<form method=post encType=multipart/ form-data runat="server">

如果没有这个属性,就不能实现上传。

然后在此Web Form中增加一个Web Form类的Button,双击Button添加如下代码:

//上传图片的程序段
DateTime now = DateTime.Now ;
//取现在时间到DataTime类的对象now中
string strBaseLocation = "D://web//FC//pic//";
//这是文件将上传到的服务器的绝对目录
if (uploadfile1.PostedFile.ContentLength != 0) //判断选取对话框选取的文件长度是否为0
  {uploadfile1.PostedFile.SaveAs(strBaseLocation+now.DayOfYear.ToString()+uploadfile1.PostedFile.ContentLength.ToString()+".jpg");
//执行上传,并自动根据日期和文件大小不同为文件命名,确保不重复
Label1.Text="图片1已经上传,文件名为:"+now.DayOfYear.ToString()+uploadfile1.PostedFile.ContentLength.ToString()+".jpg";


【注意事项】
1. 上传文件不可以无限大;

2. 要注意IIS的安全性方面的配合;

3. 用Visual Studio 的安装项目做安装程序的时候,请注意安装程序所在的绝对路径问题;

4. 注意文件上传后的重名问题。
 

下载功能如下:

filename:实际文件名 
oldName:上传的文件名 
                       public  void  DownFile(string  filename,string  OldName) 
                       { 
                                   System.IO.FileInfo  file  =  new  System.IO.FileInfo(filename); 
 
                                   Response.Clear(); 
                                   Response.AddHeader("Content-Disposition",  "attachment;  filename="  +  OldName); 
                                   Response.AddHeader("Content-Length",  file.Length.ToString()); 
                                   Response.ContentType  =  "application/octet-stream"; 
                                   Response.WriteFile(file.FullName); 
                                   Response.End(); 
                       }
 





http://www.niftyadmin.cn/n/3657298.html

相关文章

Linux 输入子系统分析(二)

Linux 输入子系统分析(一) Linux 输入子系统分析(二) 分析一个内核提供的input_handler input_dev驱动 input_dev驱动程序的工作主要是:申请一些硬件资源,如注册中断等,申请input_dev并设置&a…

分析一个内核提供的input_handler

Linux 输入子系统分析(一) Linux 输入子系统分析(二) 分析一个内核提供的input_handler 对应一些常用的输入设备,如键盘、鼠标等,内核提供的对应的input_handler,用来统一处理这类设备的事件。…

Tips - Web UI 资源索引

Basic (CSS,Javascript,AJAX...) - http://www.realsoftwaredevelopment.com/2007/08/ultimate-web-de.htmlAdvanced CSS - http://www.smashingmagazine.com/2007/01/19/53-css-techniques-you-couldnt-live-without/

GPIO子系统架构分析(一)

GPIO子系统架构分析(一) GPIO子系统架构分析(二) 通过sysf操作gpio GPIO子系统架构 在设备驱动中对GPIO的操作是非常普遍的,linux内核提供了GPIO子系统,方便用户使用,它为用户提供了GPIO的统一…

Tip - SQL报表 - 按每N行记录将报表分页

报表可以通过设置其Layout的大小来控制分页,但是如何更精确的按照每N行记录对报表分页?see - http://msdn2.microsoft.com/en-us/library/ms157328.aspxPage BreaksIn some reports, you may want to place a page break at the end of a specified numb…

GPIO子系统架构分析(二)

GPIO子系统架构分析(一) GPIO子系统架构分析(二) 通过sysf操作gpio gpio lib gpio lib(drivers\gpio\gpiolib.c)中提供了一组不依赖于硬件平台的接口函数,理解其中的主要函数非常关键。gpio l…

通过sysfs操作gpio

GPIO子系统架构分析(一) GPIO子系统架构分析(二) 通过sysf操作gpio 在gpio-sysfs.c驱动文件的入口函数: static struct class_attribute gpio_class_attrs[] {__ATTR(export, 0200, NULL, export_store),__ATTR(une…

Hot Tips: CSS 资源库 / CSS利器 - X光透视

CSS 资源库 - http://www.dynamicdrive.com/style/CSS X光透视 - http://westciv.com/xray/