从网址上传文件

时间:2018-10-03 12:47:39

标签: php file symfony upload

大家好:)我如何从URL上传文件? (我读到很多有关此的问题,但没有用……),这是我的代码:

$url = 'https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png';

$file = file_get_contents($url);
if ($file != NULL) {
    $fileName = md5(uniqid()) . '.' . $file->guessExtension();

    $file->move(
        $this->getParameter('image_directory'), $fileName
    );
}

这里我只想从url下载图像并将其移动到目录(我将在之后将路径保存在数据库中),但是使用此代码,我会遇到此错误:

  

在字符串上调用成员函数guessExtension()

2 个答案:

答案 0 :(得分:1)

file_get_contents用于读取文件的内容(txt,xml等)。
相反,您应该使用linux命令wget。您可以使用PHP函数exec来运行它。

$url = 'https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png';

//Execute wget
$file=exec("wget http://www.example.com/file.xml");
if ($file != NULL) {
    $fileName=md5(uniqid()).'.'.$file->guessExtension();
    $file->move($this->getParameter('image_directory'), $fileName);
}

答案 1 :(得分:0)

此简单代码将下载图像并将其保存到文件中

<?php
$url = 'https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png';

$file = file_get_contents($url);


if ($file != NULL) {
    $pathToFolder = 'images/png/';        // just an example folder location
    $fileName = $pathToFolder . md5(uniqid()) . 'png';
    file_put_contents($fileName,$file);
} else {
    echo 'File downlaod error';
}