关于文件上传用到的一些方法

         最近做的这个项目,文件上传比较用得多,遇到过很多问题,但是还是都解决了…… 呵呵,我很兴奋,就想把它记下来,希望对后来都有些用,当然我这里说的并不全,只是我个人的一些经验:
        下面用到的myFile是页面中的一个上传控件。
文件在本地的原始位置: UploadFileName = myFile.PostedFile.FileName;
得到文件的扩展名:UploadFileName.Substring(UploadFileName.LastIndexOf(".") + 1) 得到文件扩展名后,我们想限制用户上传文件的类型就可以用IF来判断了。比如上传图片我们就可以这样来做: if (UploadFileLastName == "jpg" || UploadFileLastName == "JPG" || UploadFileLastName == "gif" || UploadFileLastName == "GIF" || UploadFileLastName == "BMP" || UploadFileLastName == "bmp" || UploadFileLastName == "PNG" || UploadFileLastName == "png" || UploadFileLastName == "");
文件上传到服务器的文件名应该怎么命名呢?我想大家都应该想过这个问题:(1)、用用户原来的文件名又怕多个用户上传的文件名是一样的,这样一样文件就会出现覆盖问题了;(2)、用时间?当然这种方法比第一种方法出现的覆盖率会小一点,但是仍然是相当大的;(3)、有人说可以用上传的文件的一些相关信息来命名,当然这种方法也还行,我觉得重名的概率跟第(2)种差不多;当然上面这些方法都会出现重名现象,那怎么办呢?我发现在C#里面有一个系统的唯一标识(Guid),这玩意儿挺好用。你就这样用就行了:Guid juid = Guid.NewGuid(); 上传到服务器的文件名称=juid.tostring()+"."+扩展名,这样就不会出现重名现象了;但是有些人就想问,我读出来的时候应该怎么去知道原来这个文件的名称呢?这个好说,你在存文件相关信息到数据库时注意加上它的文件名就OK了;
创建文件夹:这是我们上传文件时必须做的,当然也要判断所要创建的文件夹是否已经存在,存在就不用再创建了。
string UserDirectory = "Document_file";//所要创建文件夹的名字
string UserPath = Server.MapPath("../" + UserDirectory).ToString();
if (!System.IO.Directory.Exists(UserPath)) //如果文件夹不存在则创建
                      {
                          System.IO.Directory.CreateDirectory(UserPath);
                      }
                    
其实我做完了才发现真的挺简单的,再说一下关于GUID:
1:什么是GUID
       GUID代表全球唯一识别符。一个 GUID是一个128位的数字。
       通常用一个32位的十六进制字符串来表示,就象这样:ddb58758-1e9d-48cd-900c-063b79015eb60
       两个GUID相等的几率是 1/2128 ,几乎为0。
       由于它们的唯一性,GUID可以被用在需要唯一关键字的应用程序中

2:在C#中创建GUID
     string juid = System.Guid.NewGuid().ToString();
     Response.Write(juid); 

 

获得扩展名的方法可以直接用,System.IO.Path.GetExtension(filename)

aaa.jpg ==> .jpg

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值