php 如何使用CSV MIME类型?

f4t66c6m  于 2023-01-24  发布在  PHP
关注(0)|答案(5)|浏览(145)

在我正在使用的一个Web应用程序中,用户可以点击CSV文件的链接。没有为MIME类型设置标题,所以浏览器只是将其呈现为文本。我希望此文件以.csv文件发送,这样用户就可以直接用calc、excel、gnumeric等打开它。

header('Content-Type: text/csv');
echo "cell 1, cell 2";

此代码在我的计算机上按预期工作(它不总是这样吗?),但在另一台计算机上不工作。
我的浏览器是FF 3. 0. 1(在Linux上)的夜间版本。它不能在IE 7和FF 3. 0(在Windows上)中工作的浏览器
有什么我不知道的怪癖吗?

vof42yt1

vof42yt11#

您可以尝试通过执行以下操作强制浏览器打开“另保存为...”对话框:

header('Content-type: text/csv');
header('Content-disposition: attachment;filename=MyVerySpecial.csv');
echo "cell 1, cell 2";

它应该可以在大多数主流浏览器上工作。

bttbmeg0

bttbmeg02#

您没有指定语言或框架,但以下标头用于文件下载:

"Content-Disposition: attachment; filename=abc.csv"
wfauudbj

wfauudbj3#

使用Internet Explorer时,您通常必须指定编译指示:公共标头以及下载功能正常。

header('Pragma: public');

就我的两分钱。

nzrxty8p

nzrxty8p4#

此代码可用于导出任何文件,包括csv

// application/octet-stream tells the browser not to try to interpret the file
header('Content-type: application/octet-stream');
header('Content-Length: ' . filesize($data));
header('Content-Disposition: attachment; filename="export.csv"');
31moq8wy

31moq8wy5#

我尝试使用text/csv,但它不为我工作后,尝试了不同的东西,我想通了,如果我们使用这个text/plain。现在文件上传完成。如预期。这个问题是在yi2文件上传小部件。
成功后的示例响应。

{"files":[{"name":"unit_ids list - Sheet1.csv","type":"text/plain","size":30,"base_url":"https://s3-eu-west-1.amazonaws.com/cdn.abc.co","path":"1/g2qVy3JtyZBLaRUd8c5gMOtSyrTEwdzR.csv","url":"https://s3-eu-west-1.amazonaws.com/cdn.abc.co/1/g2qVy3JtyZBLaRUd8c5gMOtSyrTEwdzR.csv","delete_url":"/coupons/default/sheet-delete?path=1%2Fg2qVy3JtyZBLaRUd8c5gMOtSyrTEwdzR.csv"}]}

相关问题