PHP从地址上传

PHP从地址上传,php,file-upload,upload,Php,File Upload,Upload,我有一个小PHP代码上传我的文件,所有的文件都是图片 我想对它做些改变 HTML代码: <form action="" enctype="multipart/form-data" method="post"> <input id="file" name="file" type="file" /> <input id="Submit" name="submit" type="submit" value="Submit" /> </form> P

我有一个小PHP代码上传我的文件,所有的文件都是图片

我想对它做些改变

HTML代码:

<form action="" enctype="multipart/form-data" method="post">
<input id="file" name="file" type="file" />
<input id="Submit" name="submit" type="submit" value="Submit" />
</form>

PHP代码:

<?php

// Upload and Rename File

if (isset($_POST['submit']))
{
$filename = $_FILES["file"]["name"];
$file_basename = substr($filename, 0, strripos($filename, '.')); // get file extention
$file_ext = substr($filename, strripos($filename, '.')); // get file name
$filesize = $_FILES["file"]["size"];
$allowed_file_types = array('.doc','.docx','.rtf','.pdf');

if (in_array($file_ext,$allowed_file_types) && ($filesize < 200000))
{
// Rename file
$newfilename = md5($file_basename) . $file_ext;
if (file_exists("upload/" . $newfilename))
{
// file already exists error
echo "You have already uploaded this file.";
}
else
{
move_uploaded_file($_FILES["file"]["tmp_name"], "upload/" . $newfilename);
echo "File uploaded successfully.";
}
}
elseif (empty($file_basename))
{
// file selection error
echo "Please select a file to upload.";
}
elseif ($filesize > 200000)
{
// file size error
echo "The file you are trying to upload is too large.";
}
else
{
// file type error
echo "Only these file typs are allowed for upload: " . implode(', ',$allowed_file_types);
unlink($_FILES["file"]["tmp_name"]);
}
}

?>

我的问题是,我想上传文件,从地址

php代码应该如何更改

谢谢。

如果您的意思是“将URL的内容下载到本地文件”,您可以使用、和:


用法:

<?php   
    try {
        downloadFile(
            'https://www.gravatar.com/avatar/8bf82b417151bafc01248013d984f53f?s=32&d=identicon&r=PG&f=1', 
            '/var/www/download/avatar.png'
        );
    } catch (Exception $e) {
        echo 'Could not download file: ' . $e->getMessage();
    }
?>

这不是所谓的“文件上载”,而是从远程服务器下载文件并将其保存到本地。检查以下几种解决方案:


您需要更具体一些。“来自地址”毫无意义。你能试着重新组织你的问题吗?什么地址?和您希望它做的相比,它现在做了什么?来自地址的文件意味着来自web地址或本地文件浏览器地址的文件?在这种情况下,不需要上传。你需要使用cURL。请参阅:如果您指的是web地址,将其粘贴到文件选择器会自动下载并添加它。@H2Ooooo地址来自web地址
<?php   
    try {
        downloadFile(
            'https://www.gravatar.com/avatar/8bf82b417151bafc01248013d984f53f?s=32&d=identicon&r=PG&f=1', 
            '/var/www/download/avatar.png'
        );
    } catch (Exception $e) {
        echo 'Could not download file: ' . $e->getMessage();
    }
?>