有没有办法直接从 cPanel 的文件管理器中的 URL 上传文件

Posted

技术标签:

【中文标题】有没有办法直接从 cPanel 的文件管理器中的 URL 上传文件【英文标题】:Is there any way to upload file directly from URL in filemanager of cPanel 【发布时间】:2014-05-14 10:19:08 【问题描述】:

这可能是一个非常常见的问题,但我搜索了很多,最后决定获得一些专家的建议。

我想知道是否有人将文件直接从 URL 上传到 cPanel 文件管理器。我可以使用文件管理器中的上传选项卡从计算机上传文件,但找不到从 URL 提取数据的任何选项。

我尝试了几个论坛、问答网站,但一无所获。如果有人能将这个问题引起专家的注意,我将不胜感激。

我看过

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

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

和我的其他地方,但除了问题之外什么也没找到。

【问题讨论】:

【参考方案1】:

是的,当然有办法

你可以在你的 ssh 控制台中使用“wget”

只需打开您的 ssh 控制台 输入 wget 命令: 例如:wget ;

你就完成了

【讨论】:

感谢您的回复。我想我没有启用 SSH。有什么办法可以从 cPanel 本身..? 这没有回答所提出的问题。许多 cPanel 用户没有 shell 访问权限。【参考方案2】:

我也有这个问题。以慢速连接下载然后再次上传对我来说不是一个选择。

目前没有任何方法可以通过 cPanel 文件管理器执行此操作。如果您无权访问 SSH,您可以像这样绕过它:

    在文件管理器中创建一个新文件,将其命名为 get1.php 或其他任何名称,并将其放置在您的域中可以访问的位置。

    在get.php中编辑文件管理器中的文件,并输入以下代码:<?php exec("wget http://domain.com/path-to-file.zip"); ?>

    现在在浏览器中导航到您在步骤 1 中创建的文件,因此它可能是 http://domain.com/get1.php

    等等。页面可能会返回 500 错误,没关系,wget 命令应该仍然可以通过。 在文件管理器的 cPanel 中重新加载您放置 get1.php 的目录,您将看到该文件在那里等着您。完成。

当然,这是非常不安全的,因为任何机器人或人都可以请求您的 get1.php 文件,因此请确保在完成后将其删除。这只是一个简单的 hack,欢迎任何更好的想法。

【讨论】:

这是一个有效的解决方法。但是,一些托管服务提供商可能会禁用“exec”,这将阻止它工作。如果它适用于您的情况,为了提高策略的安全性,请在带有 NOINDEX 的目录中创建 PHP 脚本文件(最好为此创建您自己的目录;如果您在浏览器中导航到该目录 URL并且看不到包含的文件,那么没有机器人可以扫描它),并使用复杂的文件名。当然,完成后记得删除文件。 虽然这不是我一直在寻找的,但它是很好的答案。我会等待其他人可能有更好的建议。感谢@cowb0y 对答案和问题的敏锐评论感谢 BlissOfBeing 提供了一种解决方法。 :) 仅供参考,有一个 cPanel feature request 添加这个。您可能想要订阅该请求并对其进行投票。我唯一的另一个想法是,您可以使用托管在 cPanel 帐户上的 CMS 来传输文件,或创建 a PHP script to do so(但请仔细考虑安全隐患;永远不要让方便的黑客“闲逛”让别人发现) . 这对我不起作用,即使它看起来很简单。【参考方案3】:

您可以使用RapidLeech。这是一个“传输”文件(服务器到服务器)而不是上传的 CMS。但是主机通常会禁止您使用 RL,因为它消耗太多资源。但它有非常酷的功能。您可以直接获取任何屏幕大小的 Youtube 视频,也可以通过提供您的帐户信息将文件传输回著名的文件上传网站,例如 4shared。

【讨论】:

【参考方案4】:

我遇到了同样的问题。我无法上传一些需要从一台服务器传输到另一台服务器的大文件。 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 文件,以免给潜在的黑客一个简单的方法来替换我服务器上的文件。请不要忘记这重要的一步!

【讨论】:

【参考方案5】:

使用的脚本和说明来自 PHP Url File Remote Uploader No Size Limit 并进行了一些更改以提高安全性,

这是最终结果:

说明:

    创建一个目录并将下面的代码粘贴到名为index.php 的文件中 在创建的目录中创建另一个名为files的目录,并将其更改权限为766(这可以防止黑客上传php文件并可能对您进行黑客攻击,您仍然可以从cpanel访问该文件,但您无法从您的浏览器,如果您想从浏览器下载它,请将权限更改为777,但请记住将其更改回或删除文件) 享受
<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:password@example.com/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>

【讨论】:

【参考方案6】:

在您的目录中创建一个新的 .php 文件并将下面的代码粘贴到其中。

运行脚本后,它会上传到一个名为 test.zip

的文件中
<?php
copy("YOUR_URL", "test.zip");
?>

【讨论】:

这对禁用 exec() 的共享主机提供商起到了作用

以上是关于有没有办法直接从 cPanel 的文件管理器中的 URL 上传文件的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 项目临时访问需要 cPanel 名称

如何增加 cPanel 中的最大上传大小?

Cpanel 不运行我的 cron 作业

我在 cpanel 上的 django 网站没有加载我的媒体文件(从管理员上传的图像)但是当 DEBUG=False 时我的所有 stacticfiles(css 等)都可以工作

如何为从 cPanel 中删除“Core.XXXX”文件创建 CRON [重复]

cpanel 上传的文件超过了php.ini中的upload_max_filesize指令