将文件发送给客户端

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将文件发送给客户端相关的知识,希望对你有一定的参考价值。

我想通过php在服务器中编写一个文本文件,让客户端下载该文件。

我该怎么做?

本质上,客户端应该能够从服务器下载文件。

答案

除了已发布的数据外,您还可以尝试使用标头。

它只是建议如何处理它,并且用户代理可以选择忽略它,如果它知道如何,只需在窗口中显示该文件:

<?php

 header('Content-Type: text/plain');         # its a text file
 header('Content-Disposition: attachment');  # hit to trigger external mechanisms instead of inbuilt

有关Content-Disposition标题的更多信息,请参阅Rfc2183

另一答案

这是最好的方法,假设您不希望用户看到文件的真实URL。

<?php
  $filename="download.txt";
  header("Content-disposition: attachment;filename=$filename");
  readfile($filename);
?>

此外,您可以使用mod_access保护您的文件。

另一答案

PHP有许多非常简单的类C函数用于写入文件。这是一个简单的例子:

<?php
// first parameter is the filename
//second parameter is the modifier: r=read, w=write, a=append
$handle = fopen("logs/thisFile.txt", "w");

$myContent = "This is my awesome string!";

// actually write the file contents
fwrite($handle, $myContent);

// close the file pointer
fclose($handle);
?>

这是一个非常基本的示例,但您可以在此处找到更多对此类操作的引用:

PHP fopen

另一答案

如果您将内容类型设置为application / octet-stream,浏览器将始终提供文件作为下载,并且永远不会尝试在内部显示它,无论它是什么类型的文件。

<?php
  filename="download.txt";
  header("Content-type: application/octet-stream");
  header("Content-disposition: attachment;filename=$filename");

  // output file content here
?>
另一答案

只需在网站上发布一个链接到http://example.com/textfile.php

在该PHP文件中,您输入以下代码:

<?php
header('Content-Type: text/plain');
print "The output text";
?>

通过这种方式,您可以创建动态内容(来自数据库)...如果此内容不是您要查找的内容,请尝试使用“内容类型”。

以上是关于将文件发送给客户端的主要内容,如果未能解决你的问题,请参考以下文章

Android - 将搜索传递给片段

如何将活动中的意图传递给已打开的片段

PHP必用代码片段

如何将 iOS 应用程序发送给客户端,让他们进行代码签名

将文件发送给客户端

如何使用evaluateJavaScript 将数据从WKWebview 发送到HTML 文件| iOS | Objective-C