web-dev-qa-db-ja.com

cPanelのファイルマネージャーのURLから直接ファイルをアップロードする方法はありますか?

これは非常に一般的な質問かもしれませんが、私はたくさん検索し、最終的にいくつかの専門家のアドバイスを得ることにしました。

誰かがURLからcPanelファイルマネージャーに直接ファイルをアップロードしたのではないかと思っていました。ファイルマネージャーの[アップロード]タブを使用してコンピューターからファイルをアップロードできますが、URLからデータを抽出するためのオプションが見つかりません。

いくつかのフォーラム、Q/A Webサイトを試しましたが、何も得られませんでした。誰かがこの質問を専門家の注意を引くことができれば、私は本当に感謝します。

私は見ました

http://forums.cpanel.net/f145/filemanager-upload-url-215911.html

http://forums.cpanel.net/f5/upload-via-url-305691.html

と私の他の場所が質問だけを見つけました。

14
Shiva

私もこの質問がありました。低速の接続でダウンロードしてから再度アップロードすることは、私にとって選択肢ではありませんでした。

現在、cPanelファイルマネージャーを使用してこれを行う方法はありません。 SSHにアクセスできない場合は、次のように回避できます。

  1. ファイルマネージャで新しいファイルを作成し、それを_get1.php_などと呼び、ドメインでアクセスできる場所に配置します。
  2. Get.phpで、ファイルマネージャーでファイルを編集し、次のコードを入力します:<?php exec("wget http://domain.com/path-to-file.Zip"); ?>

  3. 次に、ブラウザで手順1で作成したファイルに移動します。これにより、次のようになります http://domain.com/get1.php

  4. 待つ。ページが500エラーを返す場合がありますが、それでも問題ありません。wgetコマンドは引き続き実行されます。
  5. ファイルマネージャーのcPanelで、get1.phpを置いたディレクトリをリロードすると、そこにファイルが待っているのがわかります。完了。

もちろん、これは非常に安全ではありません。ボットや人がget1.phpファイルを要求する可能性があるため、完了したら必ず削除してください。これは単純なハックであり、より良いアイデアがあれば幸いです。

26
BlissOfBeing

私も同じ問題を抱えていました。あるサーバーから別のサーバーに転送する必要のある大きなファイルをアップロードできませんでした。 FTPとcPanelファイルマネージャーの両方が失敗し続けました。 upload.phpファイル(上記のソリューションを拡張)を作成し、宛先ディレクトリにコピーしました。このテクニックがどれほど速く機能するか信じられませんでした! 50MBのファイルでは文字通り数秒かかりました。これが私のphpファイルの内容です:

<!DOCTYPE html>
<html>
<head>
    <title>Upload file from URL</title>
</head>
<body>
<?php
    $BASE_URL = strtok($_SERVER['REQUEST_URI'],'?');

    if (isset($_POST['url'])){
        $url = $_POST['url'];
        echo "Transferring file: {$url}<br>";
        exec("wget {$url}");
    }
?>
    <form name='upload' method='post' action="<?php echo $BASE_URL; ?>">
        <input type='text' id='url' name='url' size='128' /><br>
        <input type="submit" value="Upload">
    </form>
</body>
</html>

ファイルの転送が終了したら、潜在的なハッカーにサーバー上のファイルを簡単に置き換える方法を提供しないように、常にこのphpファイルをサーバーから削除します。この重要なステップを忘れないでください!

9
Eyal Azulay

はい、もちろん方法はあります

Uはsshコンソールで「wget」を使用できます

wgetコマンドでsshコンソールタイプを開くだけです。例:wget;

そして、あなたは完了です

1
user2984602

RapidLeech を使用できます。これは、アップロードする代わりにファイルを(サーバー間で)「転送」するCMSです。ただし、RLはリソースを大量に消費するため、ホストは通常​​、RLの使用を禁止します。しかし、それは本当にクールな機能を持っています。 Youtubeの動画は、好きな画面サイズで直接入手できます。また、アカウント情報を提供することで、4sharedなどの有名なファイルアップロードWebサイトにファイルを転送して戻すこともできます。

0
Amin Darvand

PHP Url File Remote Uploader No Size Limit のスクリプトと手順を使用し、セキュリティを強化するためにいくつかの変更を加えました。

最終結果は次のとおりです。

remote upload

指示:

  1. ディレクトリを作成し、以下のコードをindex.phpという名前のファイルに貼り付けます
  2. 作成したディレクトリに、filesという名前の別のディレクトリと766への変更権限を作成します(これにより、ハッカーがphpファイルをアップロードしてハッキングする可能性がなくなります。引き続き、cpanelからファイルにアクセスできますが、ダウンロードすることはできません。ブラウザからダウンロードする場合は、権限を777に変更しますが、元に戻すか、ファイルを削除することを忘れないでください)
  3. 楽しい
<title>Remote Upload</title>
<center>

</br</p></br</p><form method="post">
<input name="url" size="50" />
<input name="submit" type="submit" />
</form>

<b>Instruction:</b>
</p>Sample values for ftp and http
</p>ftp://username:[email protected]/path/to/file.png
</p>ftp://example.com/path/to/file.png
</p>http://www.example.com/path/to/file.png

<?php

// maximum execution time in seconds
set_time_limit (24 * 60 * 60);

if (!isset($_POST['submit'])) die();

// folder to save downloaded files to. must end with slash
$destination_folder = 'files/';

$url = $_POST['url'];
$newfname = $destination_folder . basename($url);

$file = fopen ($url, "rb");
if ($file) {
  $newf = fopen ($newfname, "wb");

  if ($newf)
  while(!feof($file)) {
    fwrite($newf, fread($file, 1024 * 8 ), 1024 * 8 );
  }
}

if ($file) {
  fclose($file);
}

if ($newf) {
  fclose($newf);
}

?>
</center>
0
Ali80