Php 正在从服务器下载DLL-不是有效的DLL(错误)

Php 正在从服务器下载DLL-不是有效的DLL(错误),php,c++,dll,Php,C++,Dll,我已经编写了一个从Web服务器检索库的应用程序。 当我下载它时,它下载得很好(没有错误),但是当我尝试使用它做任何事情时,它失败了,因为它不是一个有效的DLL。在我上传文件之前,我要确保它能正常工作。我的PHP下载处理程序有一点身份验证,然后使用下载脚本进行下载。这里会出什么问题?(不,我不使用任何加密)可能是流编码。如果下载的是文本而不是二进制文件,则结果将是无效的DLL 您可以做的一个快速检查是检查响应头并确保它指示它是二进制下载(例如,八位字节流)。如果它确实表明它是二进制的,那么接下来要

我已经编写了一个从Web服务器检索库的应用程序。
当我下载它时,它下载得很好(没有错误),但是当我尝试使用它做任何事情时,它失败了,因为它不是一个有效的DLL。在我上传文件之前,我要确保它能正常工作。我的PHP下载处理程序有一点身份验证,然后使用下载脚本进行下载。这里会出什么问题?(不,我不使用任何加密)

可能是流编码。如果下载的是文本而不是二进制文件,则结果将是无效的DLL


您可以做的一个快速检查是检查响应头并确保它指示它是二进制下载(例如,八位字节流)。如果它确实表明它是二进制的,那么接下来要检查的是确保您实际接收到了所有数据,而不仅仅是其中的一部分。首先检查文件大小,如果这些文件大小已签出,则可以进行MD5校验和比较。如果校验和不同,则下载本身存在问题。不过,这可能需要更多的信息。

欢迎使用堆栈溢出。这个网站是关于你在使用代码或程序员工具时遇到的具体问题的。这不是问我们为什么代码会出现我们看不见的问题,或者一个模糊描述的问题。请花一些时间阅读这些页面,尤其是。连接到我的服务器时,响应标题读作application/x-msdownload(这是msdn指定为dll内容类型的内容)。注意:如果我尝试将其重命名为.txt文件,那么这样做不会带来“更改文件扩展名会使文件无法正常工作”之类的错误。二进制文件的通用MIME类型是application/octet stream。x-msdownload是特定于供应商的MIME类型扩展。我相信IE和Firefox可能会识别它,但你需要检查你正在使用的浏览器支持的MIME类型。Xyrus,我尝试过使用application/octet stream,同样的错误。我在下载的域上使用SSL,这可能是问题的一部分吗?是否已进行校验和以确保下载的文件实际上是正确的?如果您对下载的文件进行校验和,并将其与原始文件中的ta校验和进行比较,并且它们不同,则表明数据以某种方式被损坏。SSL应该对下载没有影响,除非一方或另一方不知何故没有解密数据(这是另一个问题)。