是否有一个TCL等效的PHP的readfile函数?

情况:
想象一下两台服务器A和B.服务器B只输出一个PDF文件,可以很好地显示从通过url参数传递给它的任何xml字符串中检索到的信息.服务器A的工作是构建一个xml字符串,将这个xml字符串附加到一个url(指向服务器B上的代码)作为参数,然后使用php的readfile()函数调用url …

问题:
有没有办法在TCL中做同样的事情(远程服务器上的readfile和输出到浏览器)?

解决方法:

如果您的脚本在其stdout通道上执行输出(或假装),那么您可以使用Tcl的http包的一些额外技巧,以便将数据保留在OS层中,而不是直接通过代码拖动它:

package require http 2

set url "http://example.org/getpdf/fromxml"
set data "<example>this might be your xml</example>"

# Generate headers, based on example from PHP readfile() page
puts "Content-Description: File Transfer"
puts "Content-Type: application/pdf"
puts "Content-Disposition: attachment; filename=example.pdf"
puts "Content-Transfer-Encoding: binary"
puts "Expires: 0"
puts "Cache-Control: must-revalidate, post-check=0, pre-check=0"
puts "Pragma: public"
# No content length; data streamed from elsewhere
puts "";    # End of headers!

set tok [http::geturl $url -query $data -type text/xml -channel stdout]
# You ought to check for errors here I suppose...
http::cleanup $tok

这假设从远程主机获取的是POST,因此-query选项的默认处理是合适的.因为我们在请求中发送了一个正文,所以它不是GET(它绝对不是PUT ……)

上一篇:使用tkinter lib在Python中显示表情符号/符号


下一篇:Linux(Centos)之安装Redis及注意事项