includes\modules\pages\free_download が動作しない  【解決済み】

困った時はこちらで質問してください。回答を担当する人は特に決まっていませんので、分かる方は回答をお願いします。
アバター
moitaro
記事: 84
登録日時: 2015/10/27 11:10

includes\modules\pages\free_download が動作しない

投稿記事by moitaro » 2017/2/24 17:58

お世話になっております。

以前のバージョンのfree_downloadを持って来て
Zencart1.5.1で動作出来れば良いと勝手に期待しております。

ですが
実際にダウンロードしようとすると
Forbidden
となってしまいます。
.htacessが不味いのかと
pubフォルダの
.htacessを取ると
Not Found
となってしまいました。

includes\modules\pages\free_download の header_php.phpには
--------
<?php
/**
* download sample header_php.php
*
* @package page
* @copyright Copyright 2003-2006 Zen Cart Development Team
* @copyright Portions Copyright 2003 osCommerce
* @license http://www.zen-cart.com/license/2_0.txt GNU Public License V2.0
* @version $Id: header_php.php 2973 2006-02-04 23:27:35Z wilt $
*/
// This should be first line of the script:
$zco_notifier->notify('NOTIFY_HEADER_START_DOWNLOAD');

--------
とあるので本モジュールはZencart公式のものだと思われるのですが
どうして動作しないのでしょうか?


他の人が困っている可能性があると勝手に私が思っているので
書き込みして申し訳ないのですが
手がかりが欲しいと思っております。

以上 お問い合わせ致します。
アバター
moitaro
記事: 84
登録日時: 2015/10/27 11:10

includes\modules\pages\free_download が動作しない

投稿記事by moitaro » 2017/3/21 15:21

お世話になっております。

落ちている原因が少々判明したので表記失礼します。
ソースを追って行って
\includes\modules\pages\free_download\header_php.php
```
zen_unlink_temp_dir(DIR_FS_DOWNLOAD_PUBLIC);
$tempdir = zen_random_name();
umask(0000);
mkdir(DIR_FS_DOWNLOAD_PUBLIC . $tempdir, 0777);
$download_link = str_replace(array('/','\\'),'_',$download_file_name);
$link_create_status = symlink(DIR_FS_DOWNLOAD . $download_file_name, DIR_FS_DOWNLOAD_PUBLIC . $tempdir . '/' . $download_link);
$zco_notifier->notify('NOTIFY_DOWNLOAD_VIA_SYMLINK___BEGINS');
```
で落ちているのですが
Zencart1.5.1用の
modules\pages\free_download\header_php.php
はどこかにないのでしょうか???

以上 お問い合わせ致します。
アバター
moitaro
記事: 84
登録日時: 2015/10/27 11:10

includes\modules\pages\free_download が動作しない

投稿記事by moitaro » 2017/3/22 15:29

ん?
ちょっとソースを読んでいて

if (DOWNLOAD_BY_REDIRECT == 'true') {
// This will work only on Unix/Linux hosts
zen_unlink_temp_dir(DIR_FS_DOWNLOAD_PUBLIC);
$tempdir = zen_random_name();
umask(0000);
mkdir(DIR_FS_DOWNLOAD_PUBLIC . $tempdir, 0777);
$download_link = str_replace(array('/','\\'),'_',$download_file_name);
$link_create_status = symlink(DIR_FS_DOWNLOAD . $download_file_name, DIR_FS_DOWNLOAD_PUBLIC . $tempdir . '/' . $download_link);

$zco_notifier->notify('NOTIFY_DOWNLOAD_VIA_SYMLINK___BEGINS');

if ($link_create_status==true) zen_redirect(DIR_WS_DOWNLOAD_PUBLIC . $tempdir . '/' . $download_link);
}
                       ↑で
 でリダイレクトしている/pub/何か文字列/
に$download_linkがないから落ちているだけで
$tempdir が 出来ていないので
その上のパーミッションが不味いのかな……
アバター
moitaro
記事: 84
登録日時: 2015/10/27 11:10

includes\modules\pages\free_download が動作しない

投稿記事by moitaro » 2017/3/22 15:41

と思いましたが
その上のパーミッションは777ですし
作ったディレクトリも777なんだよな……

ここにdownload内のファイルへのリンク貼らないとイケナイのかな……

そこの仕組み調査中   思考メモ失礼します。
アバター
moitaro
記事: 84
登録日時: 2015/10/27 11:10

includes\modules\pages\free_download が動作しない

投稿記事by moitaro » 2017/3/22 15:56

アレ?
fftpでpubフォルダにファイルをアップロードしようとしたところ
550 /public_html/zc/pub/ED1.exe: Not a regular file
って言われた……

まぁpubではなくてdownloadなので気にしないでいいのかな……
アバター
moitaro
記事: 84
登録日時: 2015/10/27 11:10

includes\modules\pages\free_download が動作しない

投稿記事by moitaro » 2017/3/24 15:49

if ($link_create_status==true) zen_redirect(DIR_WS_DOWNLOAD_PUBLIC . $tempdir . '/' . $download_link);
をコメントアウトすると
10,932バイトまでダウンロード出来るけど
それはヘッダ部分だけかな……

((+_+))うーん

本当に思考メモを表記して申し訳ございません。
アバター
moitaro
記事: 84
登録日時: 2015/10/27 11:10

includes\modules\pages\free_download が動作しない

投稿記事by moitaro » 2017/3/24 15:52

でもリダイレクトでそこに飛ばしても
pubに実態があるわけではなくて
downloadにあるからエラーになんだよな……
アバター
moitaro
記事: 84
登録日時: 2015/10/27 11:10

includes\modules\pages\free_download が動作しない

投稿記事by moitaro » 2017/3/24 15:56

って
>10,932バイトまでダウンロード出来るけど
は開いてみるとhtmlがダウンロードされていたので
やっぱりリダイレクトの所をちゃんとしないと駄目なんだよな……

こういうのを調査出来るようになりたい……
アバター
moitaro
記事: 84
登録日時: 2015/10/27 11:10

includes\modules\pages\free_download が動作しない  【解決済み】

投稿記事by moitaro » 2017/3/24 16:12

もうしょうがないから
zen_redirect("download/".$download_link);
と直接飛ばせるようにしました。

トピ汚し失礼しました。

“Zen Cart 質問コーナー” へ戻る