0

解き方がわからない問題があります。説明させてください...

ディレクトリ構造:

-/public_html/lab/
-/public_html/lab/upload.php
-/public_html/lab/plugins/

私はphp + ftpの初心者ですが、FTPは「絶対ルートパス」(/home/user/public_html/)を使用せず、代わりに問題のユーザーに応じて「絶対ユーザーパス」を使用するという考えがあります(/ public_html) ですね。

さて、upload.phpFTPクラスがupload.phpが存在する同じフォルダー(/ public_html/lab /)に一時的に保存されたファイルを取得し、それを/public_html/lab/plugins/フォルダーに移動しようとするコードがあります。

FTP クラスは、ファイルを移動するパスを受け取ります。しかし、絶対パスのようにパスを渡したくありません。これは避けたいです。

ftp->move('the-file.zip', '/public_html/lab/plugins/');

私はこのようなことをしたいと思います:

ftp->move('the-file.zip', '../plugins/');

しかし、上記のコードは有効ではないようです。では、どうすればその結果を再現できますか?

4

2 に答える 2

3

ファイルをFTPの場所に移動するためにphp相対パスLikeを使用できます

$_SERVER['DOCUMENT_ROOT'] ."/lab/plugins/" ;
于 2012-12-17T10:49:28.783 に答える
1

2 つの異なるホスト間の通信用に設計された FTP ではなく、upload.php の move_uploaded_file を使用してファイルを移動することを検討てください。

move_uploaded_file($_FILES['uploaded']['tmp_name'],'./plugins/'.$_FILES['uploaded']['name']);

ファイルが PHP スクリプトを介してアップロードされると、一時ファイルは$_FILES[$inputFieldName]['tmp_name'] の下の_FILES スーパーグローバルで利用可能になります。私が示した例を使用している場合は、クライアント側のインジェクションが可能になり、アプリケーションに巨大なセキュリティ ホールが残るため、事前に "name" 属性を削除してください。

于 2012-12-16T21:42:05.000 に答える