IE6下Clear双倍BUG解决方案 [ 阅读:96 ]

IE6下其中一个双倍BUG,HTML页面中只要在padding-top的元素内使用class=”clear”,那就会出现双倍高度(height、padding、margin)的BUG:

1
.clear {visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0;}

解决方案:在.clear的CSS里添加一句话overflow:hidden;

1
.clear {visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0;overflow:hidden;}

用C#实现Access和Excel的导入导出操作 [ 阅读:112 ]

一、Excel导入到Access

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
OleDbConnection con = new OleDbConnection();
try
{
    OpenFileDialog openFile = new OpenFileDialog();//打开文件对话框
    openFile.Filter = ("Excel 文件(*.xls)|*.xls");//后缀名
    if (openFile.ShowDialog() == DialogResult.OK)
    {
        string filename = openFile.FileName;
        int index = filename.LastIndexOf("//");//截取文件的名字
        filename = filename.Substring(index + 1);
        conExcel.ConnectionString = "Provider=Microsoft.Jet.Oledb.4.0;Data Source=" + 
                                        Application.StartupPath + "//Appdata.mdb";
        // 将excel导入access
        // distinct :删除excel重复的行.
        // [excel名].[sheet名] 已有的excel的表要加$
        // where not in : 插入不重复的记录
 
        string sql = "insert into Users2(用户编号,用户姓名) select distinct * from [Excel 8.0;database=" +
                            filename + "].[name$] where 用户编号 not in (select 用户编号 from Users2) ";
        OleDbCommand com = new OleDbCommand(sql, con);
        con.Open();
        com.ExecuteNonQuery();
        MessageBox.Show("导入数据成功", "导入数据", MessageBoxButtons.OK, MessageBoxIcon.Information);
    }
}
catch (Exception ex)
{
    MessageBox.Show(ex.ToString());
}
finally
{
    con.Close();
}

二、Access导出到Excel

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
OleDbConnection con = new OleDbConnection();   
try  
{   
    SaveFileDialog saveFile = new SaveFileDialog();   
    saveFile.Filter = ("Excel 文件(*.xls)|*.xls");//指定文件后缀名为Excel 文件   
    if (saveFile.ShowDialog() == DialogResult.OK)   
    {   
        string filename = saveFile.FileName;   
        if (System.IO.File.Exists(filename))   
        {   
            System.IO.File.Delete(filename);//如果文件存在删除文件  
        }   
        int index = filename.LastIndexOf("//");//获取最后一个/的索引   
        filename = filename.Substring(index + 1);//获取excel名称(新建表的路径相对于SaveFileDialog的路径)   
        // select * into 建立新表   
        // [Excel 8.0;database= excel名].[sheet名] 如果是新建sheet表不能加$,如果向sheet里插入数据要加$.    
        // sheet最多存储65535条数据   
        string sql = "select top 65535 *  into   [Excel 8.0;database=" + filename + "].[用户信息] from Users2";   
        conExcel.ConnectionString = "Provider=Microsoft.Jet.Oledb.4.0;Data Source=" +
            Application.StartupPath + "//Appdata.mdb";//将数据库放到debug目录下   
        OleDbCommand com = new OleDbCommand(sql, con);   
        con.Open();   
        com.ExecuteNonQuery();  
        MessageBox.Show("导出数据成功", "导出数据", MessageBoxButtons.OK, MessageBoxIcon.Information);   
    }   
}   
catch (Exception ex)   
{   
    MessageBox.Show(ex.ToString());   
}   
finally  
{   
    con.Close();   
}

服务器自定义flv的MIME类型 [ 阅读:176 ]

将做好的网站上传到服务器上,发现flv的视频不能播放,原来是服务器不支持,需要设置MIME类型。

一般的,虚拟主机管理里面都有这个选项,自定义MIME类型,按如下添加:

扩展名: .flv
MIME类型: flv-application/octet-stream

如果可以直接操作服务器的话,按照如下步骤操作:

单击【开始】→【程序】→【管理工具】→【IIS管理器】,逐步展开“本地计算机”、“网站”,在你的网站上右击,选择【属性】,单击“HTTP头”选项卡→单击“MIME类型”按钮,再单击“新建”按钮,在“扩展名”框内输入“.flv”,“MIME类型”框中输入“flv-application/octet-stream”,然后确定即可。

ASP.NET 对路径的访问被拒绝 [ 阅读:93 ]

原先的项目上传图片什么的都正常,将本项目复制一份后再执行图片上传操作的时候却提示:“对路径的访问被拒绝”。从网上查阅了很多资料,大多都是说权限问题,或者那个上传页面的权限,或者读取图片的文件夹权限,或者IIS的权限等。挨个试了一遍都不管用。

几经折腾后终于发现了问题,那就是本项目下的upload文件夹权限不足,导致图片不能上传到本文件夹中。于是,按照下面的步骤操作轻松搞定了问题。

要将ASP.NET访问权限予某个文件夹,请在资源管理器中右击该文件夹,选择“属性”,然后选择“安全”选项卡。单击“添加”添加适当的用户或组(计算机名\ASPNET)。突出显示ASP.NET帐户,选中所需访问权限对应的框(写入和修改)。

如果没有ASP.NET计算机账号(计算机名\ASPNET)这一项,按“添加”-“高级”-“立即查找”,从下面列表中选择确认添加即可。

相册页面中图片的水平和垂直居中 [ 阅读:88 ]

相册页面

如上图,相册页面中的图片有横有竖,并且要实现图片水平或者垂直居中。网上有很多种方法,尝试过一遍后推荐下面的方法。亲测,兼容IE6,7,8,FF,chrome等浏览器

HTML代码:

1
2
3
<div id="imgBox">
    <img src="images/abc.jpg" alt="" />
</div>

CSS代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#imgBox {
    width: 136px;
    height: 136px;
    text-align: center;
    border: #e0e0e0 solid 1px;
 
    /* 兼容FF chrome等标准浏览器 */
    display: table-cell;
    vertical-align: middle;
 
    /* 兼容IE6 IE7浏览器 */
    *display: block;
    *font-size: 119px; /* 字体大小约为行高的0.873倍 136*0.873=119 */
    *font-family: Arial; /* 防止非utf-8引起的hack失效,如gbk页面编码 */
}
#imgBox img {
    vertical-align:middle;
}

该方法针对IE6/IE7,调整字体大小即可实现居中,虽然方式比较奇怪,但效果却是非常给力。FF等标准浏览器同样显示完美。

至于如何实现图片等比例缩放,以达到图中效果,需要参考《可以等比例实现缩略图的JS代码》一文。

梦想时光网络,专注web前端设计,企业建站更专业。

防止网站的Access数据库文件被下载 [ 阅读:113 ]

目前仍有很多建站公司仍旧采用Asp+Access制作中小规模的企业网站,或者高级一些的使用Asp.net+Access来制作。但数据库的安全问题成了最大隐患,如果数据库文件被下载的话,这个网站基本上就是完全裸露在众人面前。就算将Access文件加密也不能阻挡人类进步的步伐,因为Access的加密破解很不成问题。

企业建站一般都是租用虚拟主机来存放网站,性能高而又价格便宜,如此的性价比被大多数建站公司所采用。用ftp登录虚拟主机的话,一般会发现下面有那么几个文件夹。www(或者htdoc),database,logfile等。www用来存放网站程序,因为该文件夹默认绑定域名。换句话说,只有www文件夹内的文件才能被访问到。database用来存放数据库文件,一般很少会把Access文件专门放到这个下面。logfile用来存放虚拟主机的日志文件。

也许看到这里有很多同学就明白了,只要将Access文件存放到database下面,数据库文件就不能被下载,因为域名只绑定了www文件夹。那么,如何使程序能够访问到网站根目录以外的数据库文件呢?那就要用到《Asp.net关于Server.MapPath()获取路径的用法》这篇文章里的技术了,对,就是用Server.MapPath()。

C#语句如下:

1
2
3
4
// 数据库文件相对路径
string DBFile = "~/../database/#sitedb.mdb";
// 获取数据库文件物理路径
string DBPath = System.Web.HttpContext.Current.Server.MapPath(DBFile);

接下来就用OleDbConnection打开组合好的Oledb连接语句就可以成功的访问数据库文件了。

mdb文件命名时加入’#'字符,由于url链接的特殊性,也能做到防止被下载,但不要只选择重命名的方式。

梦想时光网络采用Asp.net+Access技术建站的同时,也会注意和防范网络的安全性问题。梦想时光网络,专注互联网建设!

Asp.net关于Server.MapPath()获取路径的用法 [ 阅读:144 ]

有很多时候,要根据页面来获取某些文件的物理路径或者虚拟路径,我们就要用到Server.MapPath()。但Server.MapPath()的用法也比较多,稍有不慎就有可能用错,因此专门跑程序亲测后做出如下总结:

假设当前页面路径为c:\inetpub\wwwroot\test\admin\index.aspx,空间根目录为c:\inetpub\wwwroot\,网站根目录为c:\inetpub\wwwroot\test\。

1. Server.MapPath(“/”)
显示为:c:\inetpub\wwwroot\

2. Server.MapPath(“.”)
显示为:c:\inetpub\wwwroot\test\admin

3. Server.MapPath(“”)
显示为:c:\inetpub\wwwroot\test\admin

4. Server.MapPath(“..”)
显示为:c:\inetpub\wwwroot\test

5. Server.MapPath(“../”)
显示为:c:\inetpub\wwwroot\test\,注意路径的最后有个\,这一点与第4种用法仅有的不同!

6. Server.MapPath(“~”)
显示为:c:\inetpub\wwwroot\test,“~”指网站根目录。

7. Server.MapPath(“~/../”)
显示为:c:\inetpub\wwwroot,“~/../”指网站根目录的上一目录。

8. Server.MapPath(“~/admin/index.aspx”)
显示为:c:\inetpub\wwwroot\test\admin\index.aspx

9. Server.MapPath(“~”)+”\\admin\\index.aspx”
显示为:c:\inetpub\wwwroot\test\admin\index.aspx,后面的为常量字符串,需要用转义字符”\\”来取得字符”\”。

总结至此,希望对大家有所帮助。

html页面的< colgroup >标签 [ 阅读:136 ]

定义和用法

标签用于对表格中的列进行组合,以便对其进行格式化。

如需对全部列应用样式,
标签很有用,这样就不需要对各个单元和各行重复应用样式了。

标签只能在 table 元素中使用。

实例

两个colgroup 元素为表格中的三列规定了不同的对齐方式和样式(注意第一个colgroup 元素横跨两列):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<table width="100%" border="1">
  <colgroup span="2" align="left"></colgroup>
  <colgroup align="right" style="color:#0000FF;"></colgroup>
  <tr>
    <th>ISBN</th>
    <th>Title</th>
    <th>Price</th>
  </tr>
  <tr>
    <td>3476896</td>
    <td>My first HTML</td>
    <td>$53</td>
  </tr>
</table>

利用CSS中的clip滤镜打造相册封面缩略图 [ 阅读:152 ]

打造相册封面缩略图,利用css中的一个滤镜功能clip截剪工具来实现,一行代码很简单,本质就是图片的遮罩效果。

1
<img src="1.jpg" style="clip:rect(10px 100px 90px 20px);position: absolute;width: 100px;" />

个人理解其实现过程为:页面加载图片时,先等比例缩放,然后进行剪裁。

语法:
clip : auto | rect ( number number number number )
取值:
auto :  默认值。对象无剪切 。
rect ( number number number number ) :  依据上-右-下-左的顺序提供自对象左上角为(0,0)坐标计算的四个偏移数值,其中任一数值都可用 auto 替换,即此边不剪切 。

说明:
检索或设置对象的可视区域。可视区域外的部分是透明的。
此属性定义了绝对(absolute)定位对象可视区域的尺寸。必须将 position 属性的值设为 absolute ,此属性方可使用。

FCKeditor 2.6.5 for asp.net 1.1 [ 阅读:149 ]

FCKeditor,一款国外开发功能强大非常好用且免费的在线编辑器,做开发涉及到在线编辑的大都知道它。我用VS2003开发网站有几年了,还一直在用这个版本,因为发现了一点小问题,又找到源码重新修改编译了一下,放出来分享给有需要的各位。

FredCK.FCKeditorV2.dll,在2.6.4版本基础上做修改,而编辑器的相关文件都是2.6.5版本的,尽可放心使用。

1、修改文件上传重命名

FCKeditor的文件上传默认是保持本地原来的文件名;若存在同名文件,则自动在其文件名后加 (n) 来区分。为了上传文件的命名规整统一,一般都采用按照日期时间来重命名。

修改源代码的FileBrowser/FileWorkerBase.cs文件,将

1
string sFilePath = System.IO.Path.Combine( sServerDir, sFileName );

该行代码替换如下:

1
2
3
Random rd = new Random();
sFileName = DateTime.Now.ToString("yyMMddHHmmss") + rd.Next(100,1000) + System.IO.Path.GetExtension(sFileName); 
string sFilePath = System.IO.Path.Combine( sServerDir, sFileName );

2、解决图片上传过程中进度条卡住不动的问题

该问题因一客户的反映最近才发现,但之前n多客户使用都很正常,也有可能是虚拟空间的服务器配置和文件夹权限问题。但该客户的站点,在重新设置了权限后仍未解决,网上搜索后解决如下:

仍旧修改源代码的FileBrowser/FileWorkerBase.cs文件,找到

1
Response.Write( @"(function(){var d=document.domain;while (true){try{var A=window.top.opener.document.domain;break;}catch(e) {};d=d.replace(/.*?(?:.|$)/,'');if (d.length==0) break;try{document.domain=d;}catch (e){break;}}})();" );

将其中的try{document.domain=d;} catch(e){break;} 删掉就可以了。有人说,FF是没问题的,这句话可能导致IE异常。总之,删掉就解决了。

  FCKeditor_2.6.5.zip (文件大小:446.7 KB,下载次数:31 次)

压缩包内含有使用说明文档,有需要FCKeditor.Net_2.6.4源码的可以与我联系。