继续优化
SetEnvIf Request_URI "\/SAVE\/(.*)$" save_file_name="$1"
SetEnvIf Request_URI "\.(jpg|jpeg|png|gif|bmp)$" is_image_file
#除了图片,其他文件直接访问均提示下载,防止上传了js,css,html等不应该被浏览器加载的文件
Header set Content-Disposition attachment env=!is_image_file
Header set Content-Disposition "attachment; filename=%{save_file_name}e" env=save_file_name
RewriteEngine On
RewriteRule ^/(.*)\/SAVE\/.*$ /$1 [L] Copy Code
——————————————————-
优化一下~
SetEnvIf Request_URI "\/SAVE\/(.*)$" save_file_name="$1"
Header set Content-Disposition "attachment; filename=%{save_file_name}e" env=save_file_name
RewriteEngine On
RewriteRule ^/(.*)\/SAVE\/.*$ /$1 [L] Copy Code
只需要访问 : ….5_1300238850.jpg/SAVE/我的图片.jpg 就可以了,ie下文件名后面竟然也不会出现“[1]”了~
—————————————-
SetEnvIf Request_URI "_DOWN_NAME_(.*)_DOWN_EXT_(.*)$" save_file_name="$1.$2"
#下面这种ie下有问题
#SetEnvIf Request_URI "_DOWN_NAME_(.*)$" save_file_name="$1"
Header set Content-Disposition "attachment; filename=%{save_file_name}e" env=save_file_name
RewriteEngine On
RewriteRule ^/(.*)\._DOWN_NAME_.*$ /$1 [L] Copy Code
实现的效果:
假设一个附件上传后的地址是:
http://foo.com/03/21/1bc5b77f3e50b7fbe12c792ee438da45_1300688708.jpg
如果想要指定下载名,则访问:
http://foo.com/03/21/1bc5b77f3e50b7fbe12c792ee438da45_1300688708.jpg._DOWN_NAME_我的图片_DOWN_EXT_jpg
ie下的效果:

chrome下的效果:

FF下的效果,很杯具:

———–
vim->email->wordpress
WordPress升级到3.1发现用来排除某些目录feed输出的代码不好用了,bug?,有空再整。。
function blue_feed_cat_exclude($query) {
if ($query->is_feed) {
$query->set('cat','-48,-179');
}
return $query;
}
add_filter('pre_get_posts','blue_feed_cat_exclude'); Copy Code
———–
vim->email->wordpress
原帖:http://bluehua.org/2010/01/12/796.html
当年我会用pidgin同时开3个IM:gtalk,qq,msn. 于是我在pidgin里建了两个情景模式 work:三个都在线,其中qq隐身 at home:msn下线。 回到家就点到at home,但msn上还是难免有些烦人的消息发给我,让我改这改那。。,凭着饥渴精神,于是我就想出了上面的点子,完全不用伤脑筋。有问题打我电话吧,至少你得先知道我手机号^_^
好吧,出于学习的目的,现在我把它完全重写成一个标准的pidgin插件,并且支持定时功能,用ubuntu的同学如果有同样烦恼可以试下~
用ubuntu 10.10的话可以直接从源里安装
sudo add-apt-repository ppa:emptyhua/toolbox
sudo apt-get update
sudo apt-get install pidgin-autostatus
Copy Code
旧版本麻烦点
sudo apt-get install libglib2.0-dev libnm-glib-dev libdbus-glib-1-dev network-manager-dev libgtk2.0-dev libtool pidgin-dev
svn checkout http://pidgin-auto-status.googlecode.com/svn/trunk/ pidgin-autostatus
cd pidgin-autostatus
make
sudo make install
Copy Code
google code项目主页: http://code.google.com/p/pidgin-auto-status/
screenshot:


使用gsasl模拟smtp认证
gsasl -a username --service=smtp -m LOGIN --verbose -c smtp.sina.com 25
Trying `smtp.sina.com'...
220 irxd5-187.sinamail.sina.com.cn ESMTP
EHLO [127.0.0.1]
250-irxd5-187.sinamail.sina.com.cn
250-8BITMIME
250-SIZE 83886080
250-AUTH PLAIN LOGIN
250 AUTH=PLAIN LOGIN
EHLO [127.0.0.1]
250-irxd5-187.sinamail.sina.com.cn
250-8BITMIME
250-SIZE 83886080
250-AUTH PLAIN LOGIN
250 AUTH=PLAIN LOGIN
AUTH LOGIN
334 VXNlcm5hbWU6
eHh4eAo=
334 UGFzc3dvcmQ6
Enter password:
bGFuc2VkZWh1YQ==
235 #2.0.0 OK Authenticated
客户端认证完成(服务器可信)……
输入应用程序数据(用 EOF 结束输入):
^C
Copy Code
试了一下sina,163,qq,都只支持PLAIN LOGIN两种验证方式。。
———–
post by gmail~
最终我还是给blogo2增加了一个不实用的通过邮件编辑日志的功能,需要加一个#edit:BLOGID的标记,但是因为邮件客户端跟本不知道已发blog的id,所以功能略显鸡肋。这绝对是我专用的功能,在bin目录又加了一个小命令,只需在vim里输入:r!wpblog bluehua.org 便可以把最新的blog拽回来,包括blogid
wpblog的内容
#!/usr/bin/env python
import sys
import xmlrpclib
import getpass
import os
'''
A simple tool for dump blog powered by wordpress
For example: in vim, dump the last webblog into current buffer
:r!wpblog myblog.domain
'''
#make sure the stderr is the control terminal
if os.name == 'posix':
sys.stderr = open('/dev/tty', 'a')
if len(sys.argv) < 2:
print >> sys.stderr,'''
Usage:
wpblog myblog.domain [blogid]
'''
exit(1)
rpc = 'http://%s/xmlrpc.php' % sys.argv[1]
print >> sys.stderr, '\r\nUsername:'
user = raw_input()
passwd = getpass.getpass('Password:')
api = xmlrpclib.ServerProxy(rpc)
try:
if len(sys.argv) > 2:
blog = api.metaWeblog.getPost(sys.argv[2], user, passwd)
else:
blogs = api.metaWeblog.getRecentPosts('', user, passwd, 1)
if not len(blogs):
print >> sys.stderr, 'no blog returned~'
exit(1)
blog = blogs[0]
except xmlrpclib.Fault, ex:
print >> sys.stderr, ex.faultString.encode('utf-8')
exit(1)
print '#cats:%s' % u','.join(blog['categories']).encode('utf-8')
print '#tags:%s' % blog['mt_keywords'].encode('utf-8')
print '#edit:%s' % str(blog['postid'])
print blog['description'].encode('utf-8') Copy Code
———–
post by gmail~