如何在服务端判断客户端上传的文件是否在客户端存在、以及文件的大小和后缀

Hikor 2009-04-02 02:14:54
如何在服务端判断客户端上传的文件是否在客户端存在、以及文件的大小和后缀
...全文
413 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangrumeng 2009-04-02
  • 打赏
  • 举报
回复
客户端怎么可能选择的到自己并不存在的文件,所以“判断客户端上传的文件是否在客户端存在”根本就没有必要
moonshineidolon 2009-04-02
  • 打赏
  • 举报
回复
不能判断在客户端是否存在
benbirdar 2009-04-02
  • 打赏
  • 举报
回复
Asp.net 2.0 FileUpload 控件的用法


<asp:FileUpload ID="FileUpload1" runat="server" />




using System;
using System.Data;
using System.Data.Sql;
using System.Configuration;
using System.Collections;
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;

public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{

}

protected void Button1_Click(object sender, EventArgs e)
{
//将客户端上传的文件保存到服务器端的这个路径下
String savePath = @"F:\wwwroot\cookie\temp\";

if (FileUpload1.HasFile) //如果用户选择了上传的文件
{
String filename;
filename = FileUpload1.FileName;
savePath +=filename;
FileUpload1.SaveAs(savePath); //上传文件,保存到服务器的目录savePath下
Page.Response.Write(FileUpload1.PostedFile.ContentType + FileUpload1.PostedFile.ContentLength); //输出上传的文件的文件类型和大小

}
else
{
Page.Response.Write("请选择要上传的文件!");
}
}
}

周公 2009-04-02
  • 打赏
  • 举报
回复
[Quote=引用楼主 Hikor 的帖子:]
如何在服务端判断客户端上传的文件是否在客户端存在、以及文件的大小和后缀
[/Quote]
不能判断在客户端是否存在
可以在客户端判断文件后缀。
可以在上传到服务器之后获取文件大小和后缀。
周公 2009-04-02
  • 打赏
  • 举报
回复

//判断是否上传了文件
if (fileUpload.HasFile)
{
//指定上传文件在服务器上的保存路径
string savePath = Server.MapPath("~/upload/");
//检查服务器上是否存在这个物理路径,如果不存在则创建
if (!System.IO.Directory.Exists(savePath))
{
//需要注意的是,需要对这个物理路径有足够的权限,否则会报错
//另外,这个路径应该是在网站之下,而将网站部署在C盘却把上传文件保存在D盘
System.IO.Directory.CreateDirectory(savePath);
}
savePath = savePath + "\\" + fileUpload.FileName;
fileUpload.SaveAs(savePath);//保存文件
//不过需要注意的是,在客户端访问却需要指定的是URL地址,而不是在服务器上的物理地址
literal.Text = string.Format("<a href='upload/{0}'>upload/{0}</a>", fileUpload.FileName);
}
周公 2009-04-02
  • 打赏
  • 举报
回复
FileUpload控件
FileUpload控件是一个很重要的控件,它被Web服务器最终解释为形如“<input type=”file”…/>”这样的普通HTML控件。
它有如下常见属性:



属性名 数据类型 说明
FileBytes byte[] 上传的文件内容的字节数组表示形式
FileContent Stream 上传文件的数据流
FileName string 上传文件在客户端的名字
HasFile bool 指示是否上传了文件
PostedFile HttpPostedFile 获取文件基础的HttpPostedFile对象



这个HttpPostedFile对象能帮我们做很多工作,它也有一些有用的常见属性:


属性名 数据类型 说明
ContentLength int 上传的文件内容的字节长度
ContentType string 上传文件的MIME 内容类型
FileName string 上传文件的在客户端的名字
InputStream Stream 指向上传文件的Stream对象


FileUpload控件还有一个void SaveAs (string filename)的方法,这个方法用于将上传的文件保存到服务器上。一般来说,使用FileUpload控件上传文件一般有如下几个步骤:
(1)利用HasFile属性判断是否上传了文件。
(2)在服务器上指定一个物理路径,并检查这个物理路径是否存在,如果不存在则先创建。
(3)指定上传文件在服务器上的上传路径,利用SaveAs()保存上传的文件。这一步还可以做一些其它检查工作,比如检查上传的文件格式是否符合要求或文件内容大小是否符合要求。
(4)将相对路径或者URL地址保存起来,以便客户访问或者下载。
周公 2009-04-02
  • 打赏
  • 举报
回复
asp.net夜话之六:asp.net基本控件
asp.net服务器控件是微软为了方便开发者开发而推出的一系列控件,它们都以类似的方式出现在Visual Studio 2005的源视图里,*代表了控件名,如就表示这是一个Button控件。asp.net服务器控件除了提供HTML服务器控件所能提供的功能之外,还有很多功能更为复杂的控件。这些控件可以分为简单控件、容器控件、数据绑定控件、数据源控件和数据验证控及用户自己根据自己业务需要将一些控件组合在一起组成的用户控件等。asp.net控件的特点与HTML服务器控件类似,也有如下特点:(1)asp.net服务器控件必须有一个在当前页面中唯一的ID属性和runat=”server”属性;(2)asp.net服务器控件必须放在服务器端表单中;(3)asp.net服务器控件最终会被解释成普通HTML标记发送到客户端浏览器。本文主要介绍以下控件:Button控件TextBox控件Web服务器控件的特殊客户端事件FileUpload控件Literal控件Panel控件PlaceHolder控件
yangqidong 2009-04-02
  • 打赏
  • 举报
回复
大小和后缀如果用FileUpload控件的话
FileUpload1.PostedFile.ContentLength
FileUpload1.PostedFile.FileName
Hikor 2009-04-02
  • 打赏
  • 举报
回复
那大小和后缀呢
yangqidong 2009-04-02
  • 打赏
  • 举报
回复
不能判断文件是否在客户端存在,用户可以自己用程序发送自己定义的html请求

62,267

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧