这可能是一个非常常见的问题,但我搜索了很多,最后决定得到一些专家建议。
我想知道是否有人将文件直接从URL上传到cPanel文件管理器。我可以使用文件管理器中的上传选项卡从我的计算机上传文件,但无法找到从URL中提取数据的任何选项。
我已经尝试了几个论坛,Q / A网站却什么也没得到。如果有人能将此问题提请专家注意,我将非常感激。
我看了
http://forums.cpanel.net/f145/filemanager-upload-url-215911.html
http://forums.cpanel.net/f5/upload-via-url-305691.html
和我的其他地方但只发现问题。
答案 0 :(得分:23)
我也有这个问题。进行慢速连接下载然后再次上传对我来说不是一个选择。
目前没有任何方法可以通过cPanel文件管理器执行此操作。如果您无法访问SSH,可以这样解决问题:
get1.php
或其他任何内容,并将其放置在您可以在您的域中访问的位置。在get.php中编辑filemanager中的文件,并输入以下代码:<?php exec("wget http://domain.com/path-to-file.zip"); ?>
现在导航到您在浏览器中在步骤1中创建的文件,因此它可能是http://domain.com/get1.php
现在当然这是非常不安全的,因为任何机器人或人都可以请求你的get1.php文件,因此请确保在完成后删除它。这只是一个简单的黑客,任何更好的想法赞赏。
答案 1 :(得分:5)
我有同样的问题。我无法上传一些我需要从一台服务器转移到另一台服务器的大文件。 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文件,以免给潜在的黑客一个简单的方法来替换我服务器上的文件。请不要忘记这一重要步骤!
答案 2 :(得分:2)
使用的脚本和说明 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>
答案 3 :(得分:1)
好的当然有道路
你可以在你的ssh控制台中使用“wget”
只需打开ssh控制台即可 输入wget命令: 例如:wget;
你完成了
答案 4 :(得分:0)
您可以使用RapidLeech。这是CMS“转载”文件(服务器到服务器)而不是上传。但主机通常会禁止你使用RL,因为它消耗了太多资源。但它有很酷的功能。您可以直接使用您想要的任何屏幕尺寸获取Youtube视频,还可以通过提供您的帐户信息将文件转载回着名的文件上传网站,例如4shared。
答案 5 :(得分:0)
在目录中创建一个新的.php文件,并将下面的代码粘贴到其中。
运行脚本后,它将上传到名为 test.zip
的文件中<?php
copy("YOUR_URL", "test.zip");
?>