1

CakePHP アプリで Uploadify (jQuery プラグイン) を使用しようとしています。ローカル (WampServer) では問題なく動作しますが、ライブ サーバー (Dreamhost) で試してみると、ファイルが表示されません。フォルダーを適切に chmod したり、パスを確認したりしましたが、なぜ機能しないのかわかりません。ここにupload.phpがあります:

if (!empty($_FILES)) {
    $tempFile = $_FILES['Filedata']['tmp_name'];
    $targetPath = $_SERVER['DOCUMENT_ROOT'] . "/app/webroot/posts/temp/";
    $targetFile =  str_replace('//','/',$targetPath) . $_FILES['Filedata']['name'];

    $targetFile = str_replace(".", "_" . mt_rand(10000000,99999999) . ".", $targetFile);

    move_uploaded_file($tempFile,$targetFile);
}
echo "1";

このスクリプトは間違いなく実行されていますが、指定されたフォルダー (およびファイルシステム全体) を調べたところ、アップロードされたファイルが表示されません! それは私を夢中にさせています-うまくいけば、誰かがこれに対する答えを持っています. これ以上コードを投稿する必要がある場合はお知らせください。投稿します。

4

2 に答える 2

2

$ targetPathを変更して、正確なサーバーパスではなくドキュメントを基準にすることができます。私はしばらく前に同様の問題を抱えていました。

于 2009-07-24T02:15:07.027 に答える
2

結局のところ、それはこの行でした:

$targetFile = str_replace(".", "_" . mt_rand(10000000,99999999) . ".", $targetFile);

この行は、衝突を避けるためにファイル名にランダムな一連の数字を追加するためのものでした。ただし、ご覧のとおり、ファイル名だけでなく、パス全体で動作しています。さて、私のドメイン名は私のパス(つまり、mydomain.com)にあるため、mydomain_12314123402.comに変更が加えられていました。これは、明らかに存在しないパスです。

男、バカみたい!

于 2009-07-24T02:19:56.083 に答える