董川民 发布的文章

C#判断上传图片是不是真图片的方法,防止木马图片

/// <summary>
/// 判断文件是否为图片
/// </summary>
/// <param name="fullpath">文件的完整路径,绝对路径</param>
/// <returns>返回结果</returns>
public Boolean IsImage(string fullpath)
{
   try
   {
      System.Drawing.Image img = System.Drawing.Image.FromFile(fullpath);
      return true;
   }
   catch (Exception e)
   {
      return false;
   }
}

阅读剩余部分

帝国CMS把栏目下的文章转移到新栏目里,URL地址保持不变

有时候需要把一个栏目下的部分或全部文章,转移到别的栏目下。比如某个栏目现在要创建子栏目,创建子栏目之前,要先把它转换成非终极栏目,要转换成终极栏目,就必须把栏目下的文章转移了。

文章较多,且文章都被搜索引擎收录了,最好要保持URL地址不变,这样对SEO更友好。

如果是转移到新建栏目下,那很好办,可以保持URL地址不变。在新建栏目的“生成选项”里,找到“内容页存放目录”一项。
1,如果以前文章的URL结构是/AAA/BBB/文章id.html,选择“自定义”,输入AAA/BBB
2,下面的“内容页目录存放形式”,选择不设置目录

阅读剩余部分

Centos系统打补丁修复漏洞的命令

Centos升级系统有2个命令,但是,是有区别的。

yum -y update

升级所有包同时也升级软件和系统内核

yum -y upgrade

只升级所有包,不升级软件和系统内核

只要服务器一提示有漏洞什么的,我直接就运行yum -y update,其实这很危险的。很容易就造成整体升级后,应用可能打不开了,因为有的软件对运行环境里各个软件的版本有要求的。

无论用哪个,执行命名前,务必要给服务器做快照备份。

最后,重启生效

reboot 

阅读剩余部分

SQL Server查询数据库中包含某个值的表和字段

网上搜索了下,几乎都是先创建一个存储过程:

CREATE PROCEDURE [dbo].[SP_FindValueInDB]
(
    @value VARCHAR(1024)
) 
AS
BEGIN
    SET NOCOUNT ON;
    DECLARE @sql VARCHAR(1024) 
    DECLARE @table VARCHAR(64) 
    DECLARE @column VARCHAR(64) 
    CREATE TABLE #t ( 
        tablename VARCHAR(64), 
        columnname VARCHAR(64) 
    ) 
    DECLARE TABLES CURSOR FOR 
    SELECT o.name, c.name FROM syscolumns c 
    INNER JOIN sysobjects o ON c.id = o.id 
    WHERE o.type = 'U' AND c.xtype IN (167, 175, 231, 239) 
    ORDER BY o.name, c.name 
    OPEN TABLES 
        FETCH NEXT FROM TABLES 
        INTO @table, @column 
        WHILE @@FETCH_STATUS = 0 
        BEGIN 
            SET @sql = 'IF EXISTS(SELECT NULL FROM [' + @table + '] ' 
            SET @sql = @sql + 'WHERE RTRIM(LTRIM([' + @column + '])) LIKE ''%' + @value + '%'') ' 
            SET @sql = @sql + 'INSERT INTO #t VALUES (''' + @table + ''', ''' 
            SET @sql = @sql + @column + ''')' 
            EXEC(@sql) 
            FETCH NEXT FROM TABLES 
            INTO @table, @column 
        END 
    CLOSE TABLES 
    DEALLOCATE TABLES 
    SELECT * FROM #t 
    DROP TABLE #t 
End

然后再查询:

EXEC [SP_FindValueInDB] '要查询的值'

在使用过程中要注意一个问题:
1,如果这个库里表很多,那么查询速度就很慢
2,sqlserver表带了很多不同的前缀,比如dbo. defdba. officedba. 用你当前的账号查询到某些前缀的表时,极有可能出现对象名 'XXXtablename' 无效。

阅读剩余部分