我正在尝试创建一个上传插件,允许用户从他们的计算机或从他们输入的网址上传任何文件到提供的文本字段。
这是我必须从本地磁盘上传文件的脚本:
session_start();
//Loop through each file
for($i=0; $i<count($_FILES['file']); $i++) {
//Get the temp file path
if (isset($_FILES['file']['tmp_name'][$i]))
{
$tmpFilePath = $_FILES['file']['tmp_name'][$i];
}
//Make sure we have a filepath
if ($tmpFilePath != ""){
//Setup our new file path
if (isset($_FILES['file']['name'][$i]))
$newFilePath = "./uploaded_files/" . $_FILES['file']['name'][$i];
}
//Upload the file into the temp dir
if(move_uploaded_file($tmpFilePath, $newFilePath)) {
echo "Uploaded Successfully!<br />";
}
我现在需要的是卷曲部分从文本字段中提交的网址中获取文件并将其保存到同一位置。
这是我到目前为止的cURL:
function GetImageFromUrl($link) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_POST, 0);
curl_setopt($ch,CURLOPT_URL,$link);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$result=curl_exec($ch);
curl_close($ch);
return $result;
}
$sourcecode=GetImageFromUrl("http://domain.com/path/image.jpg");
$savefile = fopen('/home/path/image.jpg', 'w');
fwrite($savefile, $sourcecode);
fclose($savefile);
答案 0 :(得分:0)
您是否有特殊原因要使用卷曲?如果没有它,你就可以这样做:
$url = $_POST['url'];
$file_content = file_get_contents($url);
$file_name = array_pop(explode('/', parse_url($url, PHP_URL_PATH)));
file_put_contents('/home/path/' . $file_name, $file_content);
在使用它之前,您还应该考虑查看$ url并检查它是否有效。