0

我有上传脚本,它以通常的方式完成上传工作,比如从计算机浏览文件并上传,但我想将现有脚本转换为从 url 上传。例如,如果我粘贴视频文件的直接链接 url,它应该上传到我的服务器。我可以使用 php 复制方法和 feof 来完成这项工作,但我想使用我现有的脚本,因为其他一些数据与我尝试使用上述两种方法的上传脚本有关,但它不起作用。

将此代码转换为接受远程 url 上传

 <form enctype="multipart/form-data" id="form1" method="post" action="">

    <p><label>Upload videos</label>     
    <input type="file" name="video">
            <span>Only mp4 is accepted</span>   
                    <input type="submit" value="Submit" class="button"></p>

 if (!eregi(".mp4$",$_FILES['video']['name'])) {

                 die("Unavailable mp4 format");
    }

    $uri = save_file($_FILES['video'],array('mp4'));        

    function save_file($file) {
 $allowed_ext = array('mp4');



 $ext = $file['name'];

if (in_array($ext, $allowed_ext)) {
die('Sorry, the file type is incorrect:'.$file['name']);
}
$fname = date("H_i",time()).'_'.get_rand(3);
$dir = date("Ym",time());
$folder = 'uploads/userfiles/'.$dir;
 $uri = $folder.'/'.$fname.'.'.$ext;
if (!is_dir($folder))
mkdir($folder, 0777);
if (copy($file['tmp_name'],$uri))
return $uri;
else {
return false;}}
?>
4

2 回答 2

0

如果你得到一个 URL,你就没有得到一个文件上传,所以你不能只使用文件上传脚本并希望它能够工作。只需使用该copy()功能从 URL 获取文件并将其保存到您的服务器。

于 2012-09-21T16:21:38.617 回答
0

您应该使用“http_get”从另一台服务器下载文件。

$response = http_get($url);
于 2012-09-21T16:23:35.423 回答