此线程是如何在HTTP中编码Content-Disposition标头的filename参数的副本? 但是,由于很久以前就提出这个问题并且仍然没有令人满意的答案(在我看来),我想再问一次.
我开发了一个C++ CGI应用程序,它可以提供名称中包含特殊字符的文件,例如
" weird#€= {}; filename.txt "
似乎没有可能以适合每个浏览器的方式设置HTTP Content-Dispostion
我会为每个浏览器提供不同的解决方案.
现在我走了多远:
Internet Explorer(添加双引号并替换#和;)
Content-Disposition: attachment; filename="weird %23 € = { } %3B filename.txt"
Run Code Online (Sandbox Code Playgroud)
Firefox(双引号似乎工作.没有更多事情要做):
Content-Disposition: attachment; filename="weird # € = { } ; filename.txt"
Run Code Online (Sandbox Code Playgroud)
另一种工作方式:
Content-Disposition: attachment; filename*=UTF-8''weird%20%23%20%e2%82%ac%20%3D%20%7B%20%7D%20%3B%20filename.txt
Run Code Online (Sandbox Code Playgroud)
铬
当只使用双引号时会出现这些问题:
但这有效:
Content-Disposition: attachment; filename*=UTF-8''weird%20%23%20%e2%82%ac%20%3D%20%7B%20%7D%20%3B%20filename.txt
Run Code Online (Sandbox Code Playgroud)
歌剧
使用duoble引号或使用语法:filename*= UTF-8''...会产生以下问题:
我想用Python做一些服务器端脚本.但是我有很多方法可以做到这一点.
它从自己动手的CGI方法开始,似乎以一些非常强大的框架结束,这些框架基本上可以完成所有工作.还有很多东西,比如web.py,Pyroxide和Django.
编辑:我还没有太多的网络编程经验.
我想避免解析参数URL等基本和繁琐的事情.
另一方面,虽然使用Ruby on Rails 在15分钟内创建的博客视频给我留下了深刻印象,但我意识到隐藏了数百个东西来自我 - 如果你需要立即编写一个有效的网络应用程序,这很酷,但对于真正了解魔术并不是那么好 - 这就是我现在所寻求的.
我找不到用于部署Go Web应用程序的mod_go.有没有其他方法可以在Go中使用Apache Web服务器(甚至是IIS)运行Web应用程序?
更新:现在做了近一年的全职工作; 这样做(Go with Apache)使Go的目的无效(高度并发的性能).我正在使用nginx作为http/https的反向代理,并且很好地支持我的Go后端.虽然在使用Go时你必须在webapps上改变一下你的心态.
我的意思是"httpd"只是由Apache用于下载软件,还是被其他网站使用?还有必要让httpd运行"cgi"吗?为什么Apache使用httpd下载http服务器而不是将其存放在他们的http网站上的文件中?
我是一个业余爱好者(而且相当新的)程序员,他在python中编写了几个有用的(对我来说)脚本来处理各种系统自动化任务,这些任务涉及在其他各种活动中复制,重命名和下载文件.
我想创建一个从我的系统中提供的网页,它只会提供一些按钮,这些按钮可以让我远程启动这些脚本.
问题是我不知道从哪里开始调查如何做到这一点.假设我有一个名为的脚本:
file_arranger.py
如何让网页执行该脚本需要做什么?这不是为了公共消费,所以任何轻量级都会很棒.对于奖励积分,我需要考虑为Web用户提供此类脚本的输出?
编辑:第一个答案让我意识到我忘了包含这是一个Win2k3系统.
我正在尝试使用简单的Python脚本运行Icecast流,从服务器上的歌曲列表中选择一首随机歌曲.我想添加一个投票/请求界面,我的主机允许使用python通过CGI提供网页.但是,我对如何获取用户提供的GET参数感到困惑.我已经尝试过使用sys.argv的常用方法:
#!/usr/bin/python
import sys
print "Content-type: text/html\n\n"
print sys.argv
Run Code Online (Sandbox Code Playgroud)
但是,点击http://example.com/index.py?abc=123&xyz=987只会返回"['index.py']".是否有一些其他函数用于此目的,或者有什么我需要用CGI更改?我正在努力做甚么可能吗?
谢谢.
File "/usr/local/lib/python3.0/cgi.py", line 477, in __init__
self.read_urlencoded()
File "/usr/local/lib/python3.0/cgi.py", line 577, in read_urlencoded
self.strict_parsing):
File "/usr/local/lib/python3.0/urllib/parse.py", line 377, in parse_qsl
pairs = [s2 for s1 in qs.split('&') for s2 in s1.split(';')]
TypeError: Type str doesn't support the buffer API
Run Code Online (Sandbox Code Playgroud)
任何人都可以指导我如何避免这种情况?我通过将数据输入到中来得到它cgi.Fieldstorage,我似乎无法以任何其他方式做到这一点.
当我运行python -m SimpleHTTPServer 8000或python -m CGIHTTPServer 8000在我的shell中时,我将当前目录的内容托管到互联网上.
我想在浏览时使用命令行中的上述命令使以下cgi_script.py正常工作 192.xxx.x.xx:8000/cgi_script.py
#!/usr/bin/env python
print "Content-Type: text/html"
print
print """\
<html>
<body>
<h2>Hello World!</h2>
</body>
</html>
"""
Run Code Online (Sandbox Code Playgroud)
但这个脚本按字面显示,而不仅仅是"Hello World!" 部分.顺便说一句,我将文件权限更改为755 cgi_script.py以及我托管它的文件夹.
我有问题设置CGI脚本在Nginx上运行,到目前为止我已经找到了http://wiki.nginx.org/SimpleCGI这个东西,但问题是我不能让perl脚本作为服务运行,所以它会在后台运行,即使重启,它也会自动开始运行
你有什么主意吗?我正在运行Centos 5
我一直试图让PHP使用IIS 7.5并且遇到了一些障碍.每当我尝试加载页面时,我都会收到以下错误:
"HTTP错误500.0 - 内部服务器错误C:\ Program Files\PHP\php.exe - FastCGI进程意外退出"
模块FastCgiModule
通知ExecuteRequestHandler
处理程序PHP_via_FastCGI
错误代码0x00000000
请求的URL*http:// localhost:80/index.php
物理路径C:\ inetpub\wwwroot\index.php
登录方法匿名
登录用户匿名
请求跟踪失败日志目录C:\ inetpub\logs\FailedReqLogFiles
我根据需要修改了PHP.ini文件以用于IIS,并且还将其切换到详细模式.C:\ inetpub\logs\FailedReqLogs中没有任何日志文件,并且在生成的其他日志文件中没有与此错误相关的日志文件.
我已经尝试过我在这里和其他地方找到的其他修复程序但到目前为止没有任何成功.
这些是:重新检查PHP.ini设置fastCGI以在IIS中使用PHP(配置它以加载php.exe)尝试使用WinCache作为执行方法.
cgi ×10
python ×5
apache ×2
arguments ×1
browser ×1
c++ ×1
centos ×1
deployment ×1
fastcgi ×1
frameworks ×1
get ×1
go ×1
hosting ×1
http ×1
http-headers ×1
iis-7.5 ×1
nginx ×1
perl ×1
php ×1
python-3.x ×1
urllib ×1
web-services ×1
windows ×1
wsgi ×1