我一直在使用python cgi脚本从数据库中获取文件一切正常,但由于某些原因,似乎有一个额外的字节添加到文件中。在数据库上,大小是10265字节,但在http响应中,内容长度是10266,问题似乎来自http响应本身。问题是所服务的文件是.jar,并且正被java应用程序使用,由于这个额外的字节,java应用程序无法用类加载器加载这些文件。用于从服务器下载的代码段是:
def printFileHeader():
print 'Content-Type: text/plain;charset=utf-8'
print
def downloadAddon(addon_id):
dbConn = sqlite3.connect("addons.db")
dbCursor = dbConn.cursor()
dbCursor.execute("SELECT addon_file FROM uploaded WHERE id="+addon_id)
blobl = dbCursor.fetchone()
blobl = blobl[0]
printFileHeader()
print blobl
然后用请求的id调用downloadAddon()
函数,但是无论从何处获取文件(数据库中的blob或直接文件中的blob),http响应总是在内容中包含额外的字节,即使服务器端的文件是正常的。欢迎任何帮助
我知道头不是一个正确的文件头,但我把它作为测试的目的
我通过在头文件中提供文件的内容长度来“修复”这个问题,现在的代码如下所示:
这解决了问题,但我仍然不明白为什么任何解释仍然欢迎。此外,在检查修复前后的响应时,这里是文件的最后6个字节:
前(带额外字节):
AAAAAK
之后:AAAAA=
请解释一下原因
相关问题 更多 >
编程相关推荐