2

共有 Apasche Web ホスティング サーバーで PHPmove_uploaded_fileコマンドを正しく動作させるには、実際に問題があります。

フォルダー ( mkdir) を作成する場合は、フル パス名を使用する必要があります。

$target_path = "/home/myhostingname/public_html/uploads/files/".$lastID;
mkdir($target_path, 0755);

それが機能し、一意のフォルダーが作成され、FileZilla を使用してファイルをアップロードできます。

ただし、コマンドでフルパスを使用しようとすると、move_uploaded_file何もアップロードされません。例えば

move_uploaded_file($tmp_file, $target_path);

ここで、例えば:

$tmp_file = "/home/myhostingname/public_html/tmp/php8MR5Qv/test.gif"
$target_path = "/home/myhostingname/public_html/uploads/files/130/"

私が間違っていることについてのアイデア。スクリプトは受け入れられますが、不一致が発生しているように見えます...

4

2 に答える 2

2

からのファイルは$tmp_file、HTTP POST リクエストを介してアップロードする必要があります。そうしないと、機能しmove_uploaded_fileません。

ファイルがアップロードされたかどうかを確認するにはis_uploaded_file

したがって、コードは次のようになります。

$tmp_file = "/home/myhostingname/public_html/tmp/php8MR5Qv/test.gif"
$target_path = "/home/myhostingname/public_html/uploads/files/".$lastID;
if(is_uploaded_file($tmp_file)){
    mkdir($target_path, 0755);
    move_uploaded_file($tmp_file, $target_path);
}
于 2012-09-02T13:57:50.960 に答える
0

解決策は、 $target_path が実際にはファイルであることです。ドキュメントはそれを特に明確にしません。ただし、機能するコードを見つけ始めると、宛先はパスとファイル名になります...この変更を加えると、すぐに機能しました。

于 2012-09-11T11:35:53.200 に答える