PHPのファイルサイズは()、すべてが、1つのファイルで動作しますSTAT失敗したエラーを与えます

StackOverflow https://stackoverflow.com/questions/2203679

  •  18-09-2019
  •  | 
  •  

質問

私は、既存のHTMLページをこすることにより、ポッドキャストフィードを生成するPHPページを書いています。すべてが素晴らしい作品が、私のmp3ファイルの一つが与えられる「ファイルサイズを():statに失敗しました」エラーを。私が言うことができるように最善の通り、ファイルが破損して、それは完全に罰金果たしていません。私はまた、サーバーにファイルを再アップロードしました。これは、すべてのファイルサイズの中間の範囲にあるので、私は、ファイルが大きすぎるとは思いません。他のすべてのファイルは、ファイルサイズを返すので、私はこの問題は、mp3ファイルではなく、私のサーバーの構成であると仮定しています。私がチェックしなければならない何か他のものはありますか?

ここに私のコードの関連部分です。

$i = 1; //skipping header row on table
do {
    $tr = $table->find('tr', $i);

    $date = $tr->find('div', 0)->plaintext;
    $datetime = new DateTime($date);
    $speaker = $tr->find('div', 1)->plaintext;
    $title = $tr->find('div', 2)->plaintext;
    $url = $tr->find('div', 3)->find('a', 0)->href;
    $fullurl = "http://domain.org/resources/".$url;
    $filesize = filesize($url); //<---works on every file except one

    echo "<item><title>".$title."</title>\n";
    echo "<description>".$title." - ".$datetime->format('D, M jS, Y')." - ".$speaker."</description>\n";
    echo "<itunes:author>".$speaker."</itunes:author>\n";
    echo "<enclosure url=\"".$fullurl."\" length=\"".$filesize."\" type=\"audio/mpeg\"/>\n";
    echo "<guid isPermaLink=\"true\">".$fullurl."</guid>\n";
    echo "<pubDate>".$datetime->format('r')."</pubDate>\n";
    echo "<itunes:explicit>clean</itunes:explicit></item>\n\n";

    $i++;
}while ($table->find('tr', $i) != NULL);

要求されたよう:(?人が編集を指摘します。これは、ここで私の最初の質問です。)

ファイル名は、他のすべてのファイルの命名規則に従います「12-20-09_AM_Podcast.mp3」、であり、すべてのファイルが完全なエラーコードがある

644の権限を持っています
<b>Warning</b>:  filesize() [<a href='function.filesize'>function.filesize</a>]: stat failed for audio/12-20-09_AM_Podcast.mp3 in <b>/homepages/1/d106955786/htdocs/victory/resources/podcast1.php</b> on line <b>45</b><br />
役に立ちましたか?

解決

いくつかの理由domain.org上のウェブサーバは、 Content-Length filesize()ヘッダフィールドを返すされていません>失敗します。

ファイルはローカルに保存されている場合は、 filesize() のファイルのローカルコピーの代わりに。そうでない場合、それはdomain.orgのWebサーバ上の問題があるとして、あなたはこの問題を解決することはできません。あなたは、ファイルをローカルにダウンロードしてから filesize() にチェックすることで問題を回避できますが、これはすぎなかっページが遅くなりますます。

ファイルがローカルに格納されている場合は、もう一度ファイル名またはあなたのアンカーを確認してください。あなたは1つ(または両方)をスペルミスしている可能性があり、Apacheのmod_spelingはあなたのためにそれを固定しています。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top