请问一个下载的问题~~不难的~~~谢谢

mynamesucks 2004-09-23 09:11:26
我现在下载的流程是
先把字符串在服务器端生成一个txt文件,然后在客户端再去下载这个文件,下载完后删除服务器端上的源文件
请问怎样直接下载那个字符串在客户端生成一个文本文件,而不经过在服务器端上生成文件那一步
望指教,多谢~~
...全文
107 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
xyzoem2 2004-09-23
  • 打赏
  • 举报
回复
不好意思,这个是拿文件下载改的,上面那个有些地方没改,改过的程序没有测试过,仅供参考
strlen($string)这个地方,要改一下,因为strlen是计算字符数的,要改为计算字节数的函数

if (!headers_sent()) {
Header("Content-type: application/octet-stream");
Header("Accept-Ranges: bytes");
Header("Accept-Length: ".strlen($string));
Header("Content-Disposition: attachment; filename=" . $filename);
// 输出内容
echo $string;
exit;
}
xyzoem2 2004-09-23
  • 打赏
  • 举报
回复
if (!headers_sent()) {
Header("Content-type: application/octet-stream");
Header("Accept-Ranges: bytes");
Header("Accept-Length: ".filesize($file));
Header("Content-Disposition: attachment; filename=" . basename($file));
// 输出内容
echo $string;
exit;
}
loveconan 2004-09-23
  • 打赏
  • 举报
回复
使用header函数将文档类型发送
然后直接each字符串内容,对应客户端显示就是文件下载
其实服务器端并没有文件

完整的header头包括:
Content-Encoding:
Cache-Control:
Content-Length:
Content-Disposition:
Content-Type:

设置Content-Type为application/octet-stream
Content-Disposition为attachmet,filename设置成想要在客户端保存的默认文件名

在设置并发送过header之后,就可以直接echo文件内容

header之前程序不能有任何输出,否则header会失败。
cdm11cn 2004-09-23
  • 打赏
  • 举报
回复
想在客户端操作文件就是用js
mynamesucks 2004-09-23
  • 打赏
  • 举报
回复
只能用js的吗?
如果那样的话我还是用原来的办法好了
jxflll 2004-09-23
  • 打赏
  • 举报
回复
学习ing。
cdm11cn 2004-09-23
  • 打赏
  • 举报
回复
(直接下载那个字符串在客户端生成一个文本文件,而不经过在服务器端上生成文件)
是把服务器的字符串放入客户端新建的文本文件,在客户端操作的一般用js,但你想在客户端生成文件是右局限性的,除非你把安全级别设置为最低,才能用js操作客户端的文件读写
fso = new ActiveXObject("Scripting.FileSystemObject");
wen8u8 2004-09-23
  • 打赏
  • 举报
回复
i 不想指教,我不会的。能者上吧。。。

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧