标签:style blog http io ar color os 使用 sp
开发者使用 treefrog 建立的工程,生成的是动态库,会被 tfserver 加载,tfserver 将 URL 处理为 controller 、 action 、 argument 三部分,参考 URL Routing 这个文档。如下:
对应到我们的 fileserver 这个工程,controller-name 是 fileserver , action-name
是files ,argument1
是具体的文件名。访问文件时使用这样的地址:http://localhost:8800/fileserver/files/xxx 。
我们简单的改造之前的 HelloWorld 示例即可得到一个 http 文件服务器。
头文件如下:
上述代码中,public slots: 下面的部分就是 action 。当 tfserver 解析完 URL 后,就会调用到这些 action 。我们添加了两个名为 files 的 slot 。
下面是源文件:
我们在 files 的实现中,仅仅是调用 sendFile 来发送文件。其实跟踪 sendFile
会发现,这个函数仅仅是找到文件并打开,将一个 QIODevice 对象指针赋值给 THttpResponse 的 bodyDevice
成员。后续会在 TActionThread 中用这个 bodyDevice
做实际的数据发送动作。在打开文件时,param会作为文件名,在网站根目录下查找(示例中是工程根目录)。
现在,我们可以通过 http://localhost:8800/fileserver/files/appbase.pri 这个 URL 来测试一下下载。我这里是正常工作的。
TreeFrog (C++ Web Framework)开发之http文件服务器
标签:style blog http io ar color os 使用 sp
原文地址:http://www.cnblogs.com/yuyanbian/p/4116092.html