文件上传

Posted _Iniesta

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了文件上传相关的知识,希望对你有一定的参考价值。

文件上传:

1、防止文件重名:

string path = "Upload/" + DateTime.Now.ToString("yyyyMMddssmmssms") + Session["UserName"] + FileUpload1.FileName;
//防止文件重名,

2、设置文件的绝对路径:

string endpath = Server.MapPath(path);

3、上传:

FileUpload1.SaveAs(endpath);

 4、限制上传的文件格式:

string[] ns = FileUpload1.FileName.Split(.);
//以‘.‘截取字符串;
if(ns[ns.Length-1]==.aspx||ns[ns.Length-1]==.dll)
{
    Resposen.Write("<script>alert(‘不允许上传的文件类型!!‘)</ script>");
    return;
}
//判断最后一个‘.‘截取的字符串是否是代码文件等文件类型,如果是就return住;

5、限制最好写在后台,如果写在JS,容易被破解;

6、文件上传的大小,扩容:

//文件上传的大小默认4096单位是KB
//在web.config的system.web标签下:
<httpRuntime maxRequsetLength="4096" />
//可以输任意大小,最大不能超过int32的大小,单位KB

7、限制可以看到的文件类型(防君子,不防小人):

//在FileUpload控价下添加accept属性
<asp:FileUpload ID="FileUpload1" accept=".txt,.png,.jpg,等等..." runat="server" />

8、验证文件大小:

在C#后台可以验证,但是文件依然会上传,超出文件大小依然报错,这样就需要用JS验证
C#:
int a = FileUpload1.PostFide.ContentLength; 
//这个获取的是上传的文件的大小,默认单位b;
JS:
document.getElementById(Botton1).click=function(){
    if(document.getElementBtId(FileUpload1).Files[0].size>1024*1024*5)
    {
        alert(上传的文件过大);
        return false;
    }

}

 

以上是关于文件上传的主要内容,如果未能解决你的问题,请参考以下文章

将存储在内存中的文件上传到s3

JS创建文件并上传服务器

ajaxFileUpload上传带参数文件及JS验证文件大小

android的自带的httpClient 怎么上传文件

大文件上传下载实现思路,分片断点续传代码实现,以及webUpload组件

如何通过 HttpWebRequest 上传文件?