1

我有 perl 脚本,它使用以下命令设置标题

print "Content-Disposition: attachment; filename=test.csv\n\n";

当部署在 Web 服务器 IIS 和 Apache 上时,此脚本的行为有所不同。

当代码部署在 apache web 服务器上时,我可以在 android mobile 上下载文件 test.csv。

但是当在IIS服务器上部署相同的脚本时,在android mobile上下载总是不成功。

注意:但在两个 Web 服务器的任何桌面浏览器中,下载工作都像魅力一样。

以下是来自 IIS 的响应标头

(Status-Line)   HTTP/1.1 200 OK
 Server Microsoft-IIS/6.0
 Content-Disposition    attachment; filename=test.csv
 X-Powered-By   ASP.NET
 Date   Thu, 31 Jan 2013 10:10:59 GMT
 Connection close

以下是来自 Apache 的响应标头

(Status-Line)   HTTP/1.1 200 OK
 Date   Thu, 31 Jan 2013 10:12:33 GMT
 Server Apache/2.2.22 (Win32)
 Content-Disposition    attachment; filename=test.csv
 Keep-Alive timeout=5, max=100
 Connection Keep-Alive
 Transfer-Encoding  chunked
 Content-Type   text/plain

谁能帮我解决这个问题?

谢谢!

4

2 回答 2

1

非常感谢您的支持。

我尝试遵循 perl 代码,它帮助我解决了这个问题

# Set the header using following way
print "Content-Type: text/plain", "\n";
print "Content-length: $length", "\n";
print "Content-Disposition: attachment; filename=test.csv\n\n";

注意:$length 是一个存储文件内容长度的变量,如下所示

my $csv = "testing";
my $length = length $csv;

谢谢!

于 2013-02-01T07:22:42.397 回答
0

其他人似乎也无法从 IIS 服务器下载到 Android:

http://code.google.com/p/android/issues/detail?id=33362

.apk IIS 网络服务器在 android 2.3.x 上下载错误

http://www.experts-exchange.com/Programming/Languages/Java/Android/Q_27592118.html

我认为这不是 Perl 问题。不过,我没有看到解决方案。

于 2013-01-31T15:00:59.997 回答