一个基础的基础问题,找不出问题,纠结

sa111 2013-04-19 08:11:09
下面代码,下载下来的问题为什么大小只有0字节?

if( $attachment['attachment'] )
{
$file = 'uploads/resource/'.$attachment['attachment'];

if( file_exists( dirname($file) ) )
{
$fileName = basename( $file );
header("Content-type: application/force-download");
header("Content-type: application/octet-stream");
header("Accept-Ranges: bytes");
header("Accept-Length: ".filesize( $file ));
header("Content-Disposition: attachment; filename=" . $fileName);

readfile( $file );
}
}
...全文
390 29 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
29 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
引用 28 楼 u010384925 的回复:
撒打算打算的

 header("Content-Transfer-Encoding: binary"); 
xuzuning 2013-04-20
  • 打赏
  • 举报
回复
程序 D:\Code\webfolder\hz\public_attach_down.php 也就是说文档为 D:/Code/webfolder/hz/uploads/resource/123.docx 其中 D:/Code 为网站的根 你先

$file = 'D:/Code/webfolder/hz/uploads/resource/123.docx';
if( file_exists( $file ) ) {
  $fileName = basename( $file ); 
  header("Content-type: application/force-download");
  header("Content-type: application/octet-stream");
  header("Accept-Ranges: bytes");
  header("Accept-Length: ".filesize( $file ));
  header("Content-Disposition: attachment; filename=" . $fileName);
  readfile( $file );
}
测试一下
sa111 2013-04-20
  • 打赏
  • 举报
回复
引用 15 楼 xuzuning 的回复:
127.0.0.1/webfolder/hz/uploads/resource/123.docx 这样下载下来是没问题的。 那么你的程序在哪里?(echo __FILE__; 看一下)
echo __FILE__;得到D:\Code\webfolder\hz\public_attach_down.php,路径正确
xuzuning 2013-04-20
  • 打赏
  • 举报
回复
127.0.0.1/webfolder/hz/uploads/resource/123.docx 这样下载下来是没问题的。 那么你的程序在哪里?(echo __FILE__; 看一下)
sa111 2013-04-20
  • 打赏
  • 举报
回复
引用 13 楼 zqckzqck 的回复:
$file_dir = '/webfolder/hz/uploads/resource/'; $file_name = $attachment['attachment']; $file = $file_dir . $file_name; 这样提示文件没找到,但是我直接打到浏览器又可以,比如$file='123.docx'; 127.0.0.1/webfolder/……
echo $file得到/webfolder/hz/uploads/resource/123.docx
夫人的泡泡鱼 2013-04-20
  • 打赏
  • 举报
回复
$file_dir = '/webfolder/hz/uploads/resource/'; $file_name = $attachment['attachment']; $file = $file_dir . $file_name; 这样提示文件没找到,但是我直接打到浏览器又可以,比如$file='123.docx'; 127.0.0.1/webfolder/hz/uploads/resource/123.docx 这样下载下来是没问题的。 echo $file;//试试看
jz399930885 2013-04-20
  • 打赏
  • 举报
回复
撒打算打算的
sa111 2013-04-20
  • 打赏
  • 举报
回复
引用 26 楼 line_us 的回复:
解决问题的过程是最有趣的。
这个趣味也太折腾人了。。
line_us 2013-04-20
  • 打赏
  • 举报
回复
解决问题的过程是最有趣的。
sa111 2013-04-20
  • 打赏
  • 举报
回复
引用 24 楼 sa111 的回复:
引用 23 楼 xuzuning 的回复:D:/Code/htdocs_33594_v6/hz/uploads/resource/123.docx 你怎么总是说是 webfolder 呢? 红色部分只是个例子,代码中我是写htdocs_33594_v6这个的
$file = 'D:/Code/htdocs_33594_v6/uploads/public/20130420071624_1761_上传_案.docx'; if( file_exists( $file ) ) { $fileName = basename( $file ); header("Content-type: application/force-download"); header("Content-type: application/octet-stream"); header("Accept-Ranges: bytes"); header("Accept-Length: ".filesize( $file )); header("Content-Disposition: attachment; filename=" . $fileName); readfile( $file ); } 这样在单独文件可以下载并正常,但是在iframe里就不行了,怪哉!!!!!
sa111 2013-04-20
  • 打赏
  • 举报
回复
引用 23 楼 xuzuning 的回复:
D:/Code/htdocs_33594_v6/hz/uploads/resource/123.docx 你怎么总是说是 webfolder 呢?
红色部分只是个例子,代码中我是写htdocs_33594_v6这个的
xuzuning 2013-04-20
  • 打赏
  • 举报
回复
D:/Code/htdocs_33594_v6/hz/uploads/resource/123.docx 你怎么总是说是 webfolder 呢?
sa111 2013-04-20
  • 打赏
  • 举报
回复
引用 21 楼 xuzuning 的回复:
那就是你提供的路径信息不对!
你最好截个图





这是站点路径
xuzuning 2013-04-20
  • 打赏
  • 举报
回复
那就是你提供的路径信息不对! 你最好截个图
sa111 2013-04-20
  • 打赏
  • 举报
回复
引用 19 楼 xuzuning 的回复:
干嘛是框架? 你单独写个文件测试一下不就可以了吗
单独文件也不行。。。
xuzuning 2013-04-20
  • 打赏
  • 举报
回复
干嘛是框架? 你单独写个文件测试一下不就可以了吗
sa111 2013-04-20
  • 打赏
  • 举报
回复
引用 17 楼 xuzuning 的回复:
程序 D:\Code\webfolder\hz\public_attach_down.php 也就是说文档为 D:/Code/webfolder/hz/uploads/resource/123.docx 其中 D:/Code 为网站的根 你先PHP code?12345678910$file = 'D:/Code/webfolder/hz/uploads/re……
不行,没执行if里面的程序,难道是在iframe里不行?
sa111 2013-04-19
  • 打赏
  • 举报
回复
引用 11 楼 sa111 的回复:
引用 10 楼 snmr_com 的回复:$file_dir = '/webfolder/hz/uploads/resource/'; 这个是系统的根目录,不是网站的根目录,你两个概念搞混了 $file_dir = 'd:/cede/webfolder/hz/uploads/resource/'; 这样也不行呢
各种路径都试过了,就是吧不行,大侠们,求救!!!!!!!!!!!!!!!!
sa111 2013-04-19
  • 打赏
  • 举报
回复
引用 10 楼 snmr_com 的回复:
$file_dir = '/webfolder/hz/uploads/resource/'; 这个是系统的根目录,不是网站的根目录,你两个概念搞混了
$file_dir = 'd:/cede/webfolder/hz/uploads/resource/'; 这样也不行呢
ImN1 2013-04-19
  • 打赏
  • 举报
回复
$file_dir = '/webfolder/hz/uploads/resource/'; 这个是系统的根目录,不是网站的根目录,你两个概念搞混了
加载更多回复(9)

21,893

社区成员

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

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