22

アップロードされたファイルを tmp ディレクトリから Web サーバー上の永続的な場所に移動するように PHP を取得しようとしています。それは十分に単純に思えますが、私はこのエラーが発生しています:

Unable to move 'C:\UniServer\tmp\php3F62.tmp' to 'static/images/slides/1/1.jpg'

かなり簡単ですよね?宛先フォルダーが見つかりません。

私の質問は:目的のターゲット ディレクトリを参照するにはどうすればよいですか?

参照は、サーバー上のスクリプトの位置に関連していますか? それともURLに相対的ですか?それともPHP DOCUMENT_ROOT?それともOSのファイルシステム?または、他の何か?

PHPのドキュメントや、実際にSOに関する同様の質問のいずれにも答えが見つかりません..

誰でも助けることができますか?ありがとう。

4

5 に答える 5

43

パスを追跡する簡単な方法は、index.php で絶対パスを定義することです。

define ('SITE_ROOT', realpath(dirname(__FILE__)));

次に、次のように使用します。

move_uploaded_file($_FILES['file']['tmp_name'], SITE_ROOT.'/static/images/slides/1/1.jpg');
于 2012-06-08T15:09:53.370 に答える
0

サーバー上のスクリプトの位置からです。さらに、このフォルダーへの書き込み権限が必要です。

'static/images/slides/1/1.jpg'

代わりに、次のように絶対パスを使用することをお勧めします。

'C:\UniServer\***\static\images\slides\1\1.jpg

絶対パスを使用してください。

于 2012-06-08T15:02:55.800 に答える
0

これは、エラーを発生させずに役立つと思います。

$image = $_FILES['image']['name'];
$image_temp =$_FILES['image']['tmp_name'];
$target='C:/xampp/htdocs/jer/images/'.basename($_FILES['image']['name']);
move_uploaded_file($image_temp, "$target");
insert into images (images) values ('$target');
于 2020-03-07T09:36:11.573 に答える
0
$destination = dirname(dirname(dirname(dirname(__FILE__))))."/runtime/tmp/";
chown($destination, 0755);
move_uploaded_file($info['tmp_name'], $destination.$info['name']);

これが私の解決策です。mkdir を使用してディレクトリを作成し、移動したい写真を配置します。それが役に立てば幸いです。

于 2017-07-27T10:43:13.707 に答える