ファイルのパスについて

「まったく何も分からない・・・」そんなユーザーさんの為のフォーラムです。どんなご質問でもお気軽にどうぞ。
返信
cojicoji

ファイルのパスについて

投稿記事 by cojicoji » 2005年5月15日(日) 16:20

画像、ファイルのアップロードで苦労しています。

管理画面でのファイルのプレビューではきちんとhttp://で始まるアドレスが表示されるのですが、出来上がったphpファイルでは、リンクがfile:///になってしまいます。お助けください。

一応チュートリアル1,2,3はうまく動作しました。

動作環境

自宅サーバにて実証中
WinXPHome
Apache HTTP Server 2.0.54
php-4.3.11-Win32
localhostでサーバ兼クライアント(同一のPC)で検証中です。

cojicji

ファイルのパスについて補足

投稿記事 by cojicji » 2005年5月15日(日) 16:41

トラブル状況について補足いたします。

出来上がったPHPでのパス
file:///C:\www\cmsdesigner/dlfile.php?entryname=kiji&entryid=00003&fileid=00000001&/test.txt

管理画面でのパス
http://localhost/cmsdesigner/dlfile.php ... &/test.txt

このような状況です。

情報が足りなければ、ご指示くださいますようお願いします。

webmaster
Site Admin
記事: 1451
登録日時: 2004年12月10日(金) 10:09

Re: ファイルのパスについて補足

投稿記事 by webmaster » 2005年5月15日(日) 19:37

 webmasterです。
 ご質問ありがとうございます。

 状況を確認させて頂くと、

 (1) 管理画面からファイルをアップロードして保存し、
 (2) 管理画面上でそのファイルのリンクを表示すると、正しくダウンロードできる。
 (3) しかし、php側でそのエントリデータのfile項目を表示しようとすると、
  ファイルのURLが「file:///c:\」から始まるものになってしまう。

 という事でしょうか?

 Windows上でPHPを動作させた事がない為、詳しくは分からないのですが、
CMSDではファイルのURLは「cmsdesigner/dlfile.php?entryname=kiji&entryid=00003&fileid=00000001&/test.txt」
の部分しか保持しておらず、「http://localhost/」等の部分はブラウザが現在
のURLからの相対パスとして補完しているものです。

 よって、今回の「file:///c:\」の部分も、ブラウザがつけているものと思うのですが、
なぜそういう状況になるのかは不明の状況です・・・。

 どなたか情報をお持ちの方はいらっしゃいませんか?
 こちらでも何か分かりましたらご報告させて頂きます。m(_ _)m

cojicoji

ファイルのパスについて補足2

投稿記事 by cojicoji » 2005年5月15日(日) 20:16

お世話になります。

状況についてはそういうことになります。Windowsでの環境構築中で、localhostでテストしている最中です。

ブラウザが原因?とのことでしたので、Firefoxでも試してみたのですが同様でした。

やはり同一のマシン(サーバー兼クライアント)という環境が原因でしょうか。
(Apacheの設定とかも関係しますでしょうか)

うまくいかなければ、Linux環境の方でもテストしてみます。

cojicoji

ファイルのパスについて補足3

投稿記事 by cojicoji » 2005年5月16日(月) 20:43

cojicojiです。

少し情報が整理できたので報告します。

dataフォルダのxmlファイルを覗いてみると、ファイルのリンクが

<file1 filetype="file" org="Sunset.jpg" filesize="71189" state="saved" fileid="00000001" src="kiji.00001.00000001.jpg">C:\www\cmsdesigner/dlfile.php?entryname=kiji&entryid=00001&fileid=00000001&/Sunset.jpg</file1>

となっておりました。C:\www\の部分を手動で消すと、うまくリンクできました。C:\www\ については、どうやらApacheのDocumentRoot "C:/www"の部分のようです。試しにDocumentRoot を"C:/www1"変えてみると、xmlの内容も同じようにC:\www1\"に変化しました。

何かこのあたりに問題があるのではと考えています。

対処療法的に、出来上がったxmlから、C:\www\ という文字列を自動的に削除するような方法はありませんでしょうか。

よろしくお願いいたします。

webmaster
Site Admin
記事: 1451
登録日時: 2004年12月10日(金) 10:09

Re: ファイルのパスについて補足3

投稿記事 by webmaster » 2005年5月16日(月) 23:21

 webmasterです。
 申し訳ありません、今回頂いた情報で、CMSDの不具合だということが判明しました。m(_ _)m

 Windows上で動作させた事が無かった為これまで気づきませんでしたが、
Windows上ではファイルパスの区切り文字が円マークになるということを失念
しておりました(初歩的ミスです)。

 こちらで試せる環境が無い為、検証ができないのですが、以下のように修正して
みるとどうでしょうか?

 app.php.inc ファイルの50行目を、

コード: 全て選択

$tokens = explode( '/', $rootDirPath );
 から、

コード: 全て選択

$tokens = split( '[/\]', $rootDirPath );
 へ変更してみてください。
 尚、一度アップロードしたファイルは一旦削除してから再度保存して頂くか、
まったく新しいエントリでお試しくださるとより確実かと思います。

cojicoji

ファイルのパスについて補足4

投稿記事 by cojicoji » 2005年5月17日(火) 06:20

cojicojiです。

app.php.inc ファイルを修正してみたところ、うまく動作するようです!やったー! :lol:
早速対応していただき、ありがとうございました。

これで基本的な問題は解決できましたので、次はデザイン面の方にステップを移していきたいと思います。
初心者なので、またいろいろお世話になると思いますが、よろしくお願いします。 :oops:

非常に魅力的なツールですので、これからも開発がんばってください。応援しています。

webmaster
Site Admin
記事: 1451
登録日時: 2004年12月10日(金) 10:09

Re: ファイルのパスについて補足4

投稿記事 by webmaster » 2005年5月21日(土) 13:15

 ありがとうございます。がんばります!

 またご意見などありましたら、お気軽に投稿してくださいませ。 :)

返信