【问题标题】:Incomplete php cloud transfer and copy不完整的php云传输和复制
【发布时间】:2021-06-12 07:56:49
【问题描述】:

我想在两个 wordpress 主机之间传输文件,我使用以下代码:

<?php
copy("https://a.com/b.zip", "b.zip");
?>

文件大约 500mb,但每次它都会不完整,只上传文件的几个百分比,从 10 到 200mb。我使用 namecheap wordpress 托管。

  • php 7.4
  • WordPress 设置的最大上传限制 = 1gb
  • PHP 限制时间 = 3600
  • WordPress 上传目录可写权限 = 可写

我从本地计算机上传这些文件没有任何问题,我尝试了 multcloud 但它也没有成功。我该怎么办?

【问题讨论】:

  • 将它们分成 2-3 个较小尺寸的拉链并尝试这样做
  • 我不能,它的 .wpress 和我不能分块

标签: php wordpress


【解决方案1】:

对我来说似乎是时间和速度限制。

所以首先要在copy 之前添加ignore_user_abort(true);,以避免在客户端超时时中止脚本。尽可能增加时间限制。

另一个需要考虑的选择是将文件分成更小的块或使用更高级的东西来下载,比如基于 curl 的客户端能够恢复未完成的下载(即参见 this gist

此处复制要点

<?php
set_time_limit(0);
ignore_user_abort(true);
$url    = "http://web.shit/backup.zip";

$ch = curl_init($url);
$to_file    = 'web.zip';
$opt    = array();
if(is_file($to_file))
{
    $sz = filesize($to_file);
    $opt[CURLOPT_RANGE] = $sz . "-";
    
}
$opt[CURLOPT_SSL_VERIFYPEER] = false;
$opt[CURLOPT_FOLLOWLOCATION] = true;
$opt[CURLOPT_FILE]  = fopen($to_file, 'a');
$opt[CURLOPT_USERAGENT] = 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.124 Safari/537.36';
curl_setopt_array($ch, $opt);
curl_exec($ch);
$grab_info  = curl_getinfo($ch);
fclose($opt[CURLOPT_FILE]);

print_r($grab_info);

【讨论】:

  • 谢谢,但我不起作用,我尝试了你的代码,它只是创建了一个 0 字节文件,并使用了 ignore_user_abort(true);并设置时间限制,我的主要问题仍然是,它只是复制了几mb
  • 有什么错误吗?好像没有安装 curl 扩展?因为我已经尝试过了,它有效。虽然不遵循重定向...
  • 尝试显示错误。在共享主机上,有时很难在日志中找到它们。特别是如果它被感染了 Wordpress。 //仅用于调试问题 ini_set('display_errors', 1); ini_set('display_startup_errors', 1); error_reporting(E_ALL);
  • 数组 ( [url] => exaple.com/file.wpress [content_type] => [http_code] => 301 [header_size] => 132 [request_size] => 220 [filetime] => -1 [ssl_verify_result ] => 0 [redirect_count] => 0 [total_time] => 0.025726 [namelookup_time] => 0.023578 [connect_time] => 0.024956 [pretransfer_time] => 0.025091 [size_upload] => 0 [size_download] => 0 [speed_download] = > 0 [speed_upload] => 0 [download_content_length] => 0 [upload_content_length] => 0 [starttransfer_time] => 0.025653 [redirect_time] => 0 [redirect_url] => example.com/file.wpress [primary_ip] => 1.2.3.XMR58196
  • [http_version] => 2 [protocol] => 1 [ssl_verifyresult] => 0 [scheme] => HTTP [appconnect_time_us] => 0 [connect_time_us] => 24956 [namelookup_time_us] => 23578 [pretransfer_time_us] => 25091 [redirect_time_us] => 0 [starttransfer_time_us] => 25653 [total_time_us] => 25726)
猜你喜欢
  • 2023-03-11
  • 2017-03-13
  • 1970-01-01
  • 2016-01-18
  • 1970-01-01
  • 1970-01-01
  • 2014-10-18
  • 1970-01-01
  • 2017-01-08
相关资源
最近更新 更多