gpt4 book ai didi

php - Illustrator 以 PDF 格式打开

转载 作者:行者123 更新时间:2023-12-04 07:00:16 24 4
gpt4 key购买 nike

我正在为我的办公室编写一个文件共享应用程序。我遇到的一个奇怪问题是,当您点击下载按钮时,Illustrator 文件以 PDF 格式打开。

触发这个问题是因为插画文件的mime类型是application/pdf .所以浏览器在读取文件时,会触发 Acrobat 打开文件。有什么方法可以指示浏览器在 Illustrator 中打开文件?

或者有什么方法可以在上传文件后修改mime类型?后端代码是PHP。

感谢您的任何帮助。

最佳答案

一种方法是强制浏览器显示“下载文件”对话框。因此用户可以决定如何处理该文件。

这可以通过 PHP-Headers 来完成。 ( http://www.php.net/manual/en/function.header.php#83384 )

还有一个关于如何执行此操作的示例(83384 帖子):

<?php
// downloading a file
$filename = $_GET['path'];

// fix for IE catching or PHP bug issue
header("Pragma: public");
header("Expires: 0"); // set expiration time
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
// browser must download file from server instead of cache

// force download dialog
header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content-Type: application/download");

// use the Content-Disposition header to supply a recommended filename and
// force the browser to display the save dialog.
header("Content-Disposition: attachment; filename=".basename($filename).";");

/*
The Content-transfer-encoding header should be binary, since the file will be read
directly from the disk and the raw bytes passed to the downloading computer.
The Content-length header is useful to set for downloads. The browser will be able to
show a progress meter as a file downloads. The content-lenght can be determines by
filesize function returns the size of a file.
*/
header("Content-Transfer-Encoding: binary");
header("Content-Length: ".filesize($filename));

@readfile($filename);
exit(0);
?>

使用此示例时,请考虑使用
$filename = $_GET['path'];

是一个很大的安全问题。您应该改用 ID 之类的内容或验证输入。
例如:
if($_GET['file'] == 1) {
$filename = foobar.pdf;
} elseif($_GET['file'] == 2) {
$filename = foo.pdf;
} else {
die();
}

关于php - Illustrator 以 PDF 格式打开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1984633/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com