我正在建立一个系统,其中一个网站转到另一个网站以获取文档。 在第一个网站上,我使用Curl发出请求以获取所需文件: 我正在使用Download file from URL using CURL的解决方案:
function collect_file($url){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_VERBOSE, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_AUTOREFERER, false);
curl_setopt($ch, CURLOPT_REFERER, "http://example.com");
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
curl_setopt($ch, CURLOPT_HEADER, 0);
$result = curl_exec($ch);
curl_close($ch);
echo $result;
return($result);
}
function write_to_file($text,$new_filename){
$fp = fopen($new_filename, 'w');
fwrite($fp, $text);
fclose($fp);
}
$curlUrl = 'http://site2.com/file-depository/14R4NP8JkoIHwIyjnexSUmyJibdpHs5ZpFs3NLFCxcs54kNhHj';
$new_file_name = "testfile-new.png";
$temp_file_contents = collect_file($curlUrl);
write_to_file($temp_file_contents,$new_file_name);
我正在测试下载图片。如果我使用直接网址到$ curlUrl,例如http://site2.com/file-depository/image.png,那就完美了。
我正在做的是然后根据数据库解析和检查URL http://site2.com/file-depository/14R4NP8JkoIHwIyjnexSUmyJibdpHs5ZpFs3NLFCxcs54kNhHj以匹配所请求的文档,一旦有匹配的文档,我需要将此文档提供给Curl响应。 我已经尝试了很多方法来读取文件,但每次我在另一端获得一个文件,但它只有1kb的大小(预期45个),当试图打开它时,我得到一个错误未知的文件类型等。
在第二个网站上,一旦验证了URL,我就拥有了:
$file = readfile('some-image.png');
echo $file;
我猜测有部分信息属于文件丢失,但无法弄清楚,任何指针都会受到赞赏!
答案 0 :(得分:0)
我已经取代了
function write_to_file($text,$new_filename){
$fp = fopen($new_filename, 'w');
fwrite($fp, $text);
fclose($fp);
}
by file_put_contents($ new_file_name,trim($ temp_file_contents)); 请注意trim(),问题是我显然是在文件内容前面收集了一些空白区域。