上传文件,判断文件的后缀名的代码以及正则表达式

 在做文件上传的时候经常用到判断文件的后缀名,所以我现在把代码贴在下边,代码是借用别人的,也算是拿来主义吧
 
bool  fileok  =   false ;
        
if  (fileupsmpic.HasFile)
        
{
            
string fileExten = System.IO.Path.GetExtension(fileupsmpic.FileName).ToLower();
            
string[] AllowExten = ".gif",".bmp",".jpg" };
            
for (int i = 0; i < AllowExten.Length;i++ )
            
{
                
if (fileExten == AllowExten[i])
                
{
                    fileok 
= true;
                }

            }

            
if(fileok)
            
{
                
try
                
{
                    
string filePath = "../../Industry/ComWeb/"+LoginId+"/ProduPic/";
                    
string fileName = System.DateTime.Now.ToString("yyyyMMddhhmmss")+"sm"+fileExten;


                    fileupsmpic.PostedFile.SaveAs(ConfigurationManager.AppSettings[
"RootD"]+LoginId+"/ProduPic/"+fileName);

                    
                }

                
catch(System.Exception e1)
                
{
                    
//throw e1.ToString(); 
                }

            }

        }


正则表达式比较简单:
^ (([a - zA - Z]:) | (/ {2} w + )$ ? )(/(w[w]. * )) + (.jpg | .Jpg | .bmp | .Bmp | .gif | .Gif)$
 
### 如何在 Apache 服务器上通过 `.htaccess` 文件隐藏文件后缀名 为了实现隐藏文件后缀名的功能,可以利用 `mod_rewrite` 模块中的重写规则。以下是具体的方法: #### 启用 mod_rewrite 模块 首先需要确认 Apache 的 `mod_rewrite` 模块已启用。如果未启用,则需手动开启该模块。可以通过编辑 Apache 主配置文件 `httpd.conf` 并取消注释以下行来加载此模块[^3]: ```bash LoadModule rewrite_module modules/mod_rewrite.so ``` 之后重启 Apache 服务以使更改生效。 #### 编辑 .htaccess 文件 `.htaccess` 是一个用于目录级别的配置文件,在不需要修改全局配置的情况下非常方便。下面是一个典型的例子,展示如何使用 Rewrite Rule 来隐藏 PHP 文件的扩展名[^1][^2]: 假设有一个名为 `example.php` 的页面,希望访问时只需输入 `/example` 而无需显示 `.php` 扩展名,可以在 `.htaccess` 中加入如下代码: ```apache <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME}.php -f RewriteRule ^(.+?)/?$ $1.php [L] </IfModule> ``` 上述代码解释如下: - **RewriteEngine On**: 开启 URL 重写引擎。 - **RewriteCond %{REQUEST_FILENAME} !-f**: 如果请求的路径不是一个实际存在的文件则继续执行下一条条件判断。 - **RewriteCond %{REQUEST_FILENAME}.php -f**: 判断当前请求加上 `.php` 是否为真实存在的一份脚本文件。 - **RewriteRule ^(.+?)/?$ $1.php [L]**: 将不带 `.php` 结尾的地址映射到对应的 `.php` 文件上去处理,并停止进一步匹配其他规则[L标志表示最后一条规则]。 注意:以上设置仅适用于单层目录结构下的 php 文件;如果是多级子目录或者其它类型的动态网页语言(如 asp, cgi),还需要适当调整正则表达式部分以及目标替换字符串的内容。 另外需要注意一点,某些情况下即使完成了上述所有操作仍然看不到预期效果可能是因为 ThinkPHP 框架内部机制所致[^5]。只有当项目采用 U 方法调用控制器动作的时候才会自动应用路由伪装功能从而真正意义上达到隐藏的目的。 #### 测试与验证 完成上述配置以后记得保存并上传新的 `.htaccess` 文件至相应站点根目录,接着尝试直接浏览不含扩展名版本链接看能否正常工作即可。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值