gpt4 book ai didi

php - 从 URL 复制的文件被截断

转载 作者:行者123 更新时间:2023-12-03 23:05:57 26 4
gpt4 key购买 nike

我在复制文件时遇到问题。我的代码:

$file = "https://www.ilportaleofferte.it/portaleOfferte/resources/opendata/csv/offerteML/2019_1/PO_Offerte_G_MLIBERO_20190130.xml";

$newfile = $_SERVER['DOCUMENT_ROOT'] . '/input/PO_Offerte_G_MLIBERO_20190130.xml';

if(copy($file, $newfile)) {
echo "salvato<br>";
} else {
echo "ERROR inport file PO_Offerte_".$data.".".$ext."<br>";
die;
}

copy()给出 true,文件已创建,但文件末尾的某些行丢失...文件为 3.6MB,文件末尾的 0.3 行丢失...

如果我手动下载文件,一切都很好,所以源是完整的...

如果我用 file_get_contents() 获取文件内容,我实际上会遇到同样的问题我尝试使用文件写入功能将其保存在文件中...

我不认为 upload_max_filesizepost_max_size 实际上参与了 copy() 但它们设置为 20MB

有什么建议吗?

谢谢

最佳答案

我能够使用 file_get_contents 并强制使用 HTTP/1.1 协议(protocol):

$context = stream_context_create([
'http' => [
'protocol_version' => '1.1',
'header' => 'Connection: Close'
],
]);
$content = file_get_contents('https://www.ilportaleofferte.it/portaleOfferte/resources/opendata/csv/offerteML/2019_1/PO_Offerte_G_MLIBERO_20190130.xml', false, $context);
file_put_contents('document.xml', $content);

话虽如此,我还是推荐使用 CURL:

$ch = curl_init();
$curlopts = array();
$curlopts[CURLOPT_RETURNTRANSFER] = true;
$curlopts[CURLOPT_VERBOSE] = true;
$curlopts[CURLOPT_URL] = 'https://www.ilportaleofferte.it/portaleOfferte/resources/opendata/csv/offerteML/2019_1/PO_Offerte_G_MLIBERO_20190130.xml';
curl_setopt_array($ch, $curlopts);
$content = curl_exec($ch);
file_put_contents('document.xml', $content);
curl_close($ch);

关于php - 从 URL 复制的文件被截断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54452470/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com