0

アップロードしたファイルを PHP で move_uploaded_file() 経由で保存すると、絶対 URL は使用できません。相対 URL を使用する必要があります。私のサイトには、http 側と https 側の 2 つのルート ディレクトリがあります。それぞれ httpdocs と httpsdocs です。スクリプトが https 側にある場合、ファイルを http 側の場所に保存するにはどうすればよいですか?

ありがとう!

UPDATE OKなので、間違った絶対パス規則を使用しているようです。次のようにしています:

$dir = 'https://www.mydomain.com/masonic_images/';
move_uploaded_file($_FILES['blue_image']['tmp_name'], $dir.$new_name);
4

4 に答える 4

5

move_uploaded_file()どちらのパラメータのURLも受け入れません。宛先は、ファイルシステムの絶対パスです。

<?php
$dir = '/var/www/httpsdocs/'; // Adjust to your configuration
move_uploaded_file($_FILES['blue_image']['tmp_name'], $dir.$new_name);

@apphacker提案したように。realpath(__FILE__)ファイルへの絶対パスを決定するために使用できます。

于 2009-04-14T19:12:14.760 に答える
2

絶対パスがわからないために絶対パスを使用できない場合は、PHPのrealpath()を使用してそれが何であるかを把握し、それを使用してください。

于 2009-04-14T19:09:16.013 に答える
1

httpdocsディレクトリとhttpsdocsディレクトリは両方とも同じ親フォルダにありますか?その場合は、move_uploaded_fileの2番目のパラメーターの相対パスを使用して、ファイルを他のルートディレクトリに配置します。

例えば:

$uploaddir = '../httpdocs/';
$uploadfile = $uploaddir . basename($_FILES['myfile']['name']);

このコードは、アップロードスクリプトがhttpsdocsルートディレクトリにあり、ファイルをhttpdocsディレクトリに保存することを前提としています。

于 2009-04-14T19:09:32.707 に答える
1

httpdocsアップロードしたファイルを内部に置くため、php ファイルをアップロードして任意のコードを実行できる可能性があることに注意してください。

于 2009-04-14T21:02:46.647 に答える