Hot For Coding
IE input file隐藏不能上传文件解决方法

又是IE的一个问题,近来是跟IE浏览器磕上了,这个问题发现不少人也遇到过,实在蛋疼。但今天这个不能算是一个bug,因为IE可能是从安全角度上考虑结果导致的。一步步来解读。

普通上传例子

首先普通的文件上传呢,很简单,前端代码

index.html

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <title>file标签隐藏</title>

  </head>
  <body>
    <form action="http://192.168.1.99/upload/upload.php" method="post" enctype="multipart/form-data">
      <input onchange="document.forms[0].submit();" type="file" name="file" />
    </form>
  </body>
</html>

...

READ ALL

IE9以下自定义命名标签方法

自定义命名标签

在早期,HTML网页头部常常这么写,如:

HTML

<html xmlns="http://www.w3.org/1999/xhtml">

xmlns是值HTML文档所用到的命名空间,通常都是w3c的规范,所以都指向这个地址。如今HTML不少站点为了特殊需求,都添加不少自定义的命名标签。

比如:

<lee id="lee">这里是自定义lee标签</lee>

样式定义

lee {
  display:block;
  width:300px;
  height:100px;
  background:red;
  border:5px solid #000;
  color:yellow;
}

...

READ ALL

AttributeError 'module' object has no attribute 'setdefaultencoding'

Python的字符集处理实在蛋疼,目前使用UTF-8居多,默认使用的字符集是ascii,所以我们需要改成utf-8

查看目前系统字符集

import sys
print sys.getdefaultencoding()

Output:

[root@lee ~]# python a.py 
ascii

修改成utf-8

import sys
 
sys.setdefaultencoding('utf-8')
 
print sys.getdefaultencoding()

执行:

[root@lee ~]# python a.py 
Traceback (most recent call last):
  File "a.py", line 4, in <module>
    sys.setdefaultencoding('utf-8')
AttributeError: 'module' object has no attribute 'setdefaultencoding'

...

READ ALL

Linux crontab容易犯错的地方

Linux的crontab是非常好用的一个计划任务,最小颗粒度是分钟,最近使用crontab的时候发现服务器负载居然到达了七八十

[root@test01 ~]# uptime
 16:16:05 up 149 days,  5:17,  1 user,  load average: 75.00, 79.01, 87.05

高的吓人,通过top命令看了一下,发现我添加进crontab的脚本居然执行了无数个

怎么回事?

crontab格式

m h dom mon dow command

  • m: 分钟,0-59
  • h: 小时,0-23
  • dom: 日期,1-31
  • mon: 月份,1-12
  • dow: 星期,0-6,0为星期天
  • command: 命令

...

READ ALL

HTML5的input color系统颜色选择器

前两天,我写了一篇《推荐两款jQuery色盘选择器》介绍,那是使用JavaScript实现的色盘,今天我给大家介绍HTML5的色盘选择器。HTML5有一个input类型为color,即颜色选择器。

认识html5中的color

<input type="color" />

Chrome效果

full

Opera

full

...

READ ALL

推荐两款jQuery色盘选择器

一半jQueryUI都集成了不少常用功能插件,可惜色盘就是没有,只好从网上找。

其中发现有两个色盘选择器不错。

第一个是eyecon.ro

full

文档也比较全,但好像插件作者2009年以后不再维护更新了,并且不支持透明效果。

第二个spectrum的Colorpicker

full

光从文档来可以说是非常专业了,还支持透明效果,包括IE的滤镜方式都兼容。

以上两款使用都简单,文档也清晰,是不错的Colorpicker。

...

READ ALL

Python中unescape JavaScript中escape的字符

遇到一个问题需要用Python把JavaScript中escape的中文给还原,但找了大半天,也没有找到答案,只好自己深入研究解决方案。

我们先来看在JavaScript中escape一段文字的编码

a = escape('这是一串文字');
console.log(a); // Output: %u8FD9%u662F%u4E00%u4E32%u6587%u5B57

Output:

%u8FD9%u662F%u4E00%u4E32%u6587%u5B57

一看就感觉有点类似json格式,我们来看看标准的json格式编码同样的汉字这是一串文字

...

READ ALL

Tornado绑定域名或者子域名泛域名的处理

Tornado默认是监听IP加端口形式,由于Tornado在国内用的人极少,资料更是鳞毛凤角。下面说说Tornado如何绑定域名。

默认Tornado的hello World是这么来的

import tornado.ioloop
import tornado.web
 
class MainHandler(tornado.web.RequestHandler):
  def get(self):
    self.write("Hello, World")
 
application = tornado.web.Application([
  (r"/", MainHandler),
])
 
if __name__ == "__main__":
  application.listen(8888)
  tornado.ioloop.IOLoop.instance().start()

...

READ ALL

Tornado运行socket.error [Errno 97] Address family not supported by protocol

昨天把用Python重写站点程序打包到服务器上,在运行python main.py的时候,总提示socket.error: [Errno 97] Address family not supported by protocol。这在我本地是没有这个错误提示的,一开始找了半天也不知道是怎么回事?后来在看到有人也遇到我这个问题,原来是服务器双网卡问题导致。他跟我一样用阿里云,而阿里云VPS分别有两块网卡,所以需要在启动的时候指定外网IP。

问题解决了,可是不太爽的事也跟着来,如果指定外网IP,那么Nginx配置的反向代理也要把127.0.0.1:1111修改成外网IP:1111,并且要在iptables下开放这个端口,等于Nginx走外网流量。。

...

READ ALL

Python安装Imaging提示The _imaging C module is not installed

今天写Python程序上传图片需要用到PIL库,于是到http://www.pythonware.com/products/pil/#pil117下载了一个1.1.7版本的,我用的是CentOS64并且自行升级后的Python版本安装PIL库

首先下载解压

[root@lee ~]# wget http://www.pythonware.com/products/pil/#pil117
[root@lee ~]# tar -xf Imaging-1.1.7.tar.gz

然后准备安装

[root@lee ~]# cd Imaging-1.1.7
[root@lee Imaging-1.1.7]# python python setup.py build_ext -i

...

READ ALL