PHP - 上传并覆盖文件(或上传并重命名)?

时间:2012-01-19 01:05:05

标签: php upload

我已经在这个问题上进行了广泛的搜索,但还没有真正找到解决方案。

有一个客户想在他们的网站上播放音乐(是的,我知道......)。 Flash播放器抓取名为song.mp3的单个文件并播放它。

好吧,我正在尝试获得一些功能,以便能够让客户端上传他们自己的新歌,如果他们想要更改它。

基本上,脚本需要允许它们上传文件,然后用新文件覆盖旧文件。基本上,确保song.mp3的文件名保持不变。

我在想我需要使用PHP 1)上传文件 2)删除原始歌曲.mp3 3)将新文件重命名为song.mp3

这看起来是对的吗?或者有更简单的方法吗?提前谢谢!


编辑:我对UPLOADIFY进行了修改,并且能够使用

'onAllComplete' : function(event,data) {
      alert(data.filesUploaded + ' files uploaded successfully!');
    }

我只是不确定如何将其指向PHP文件....

 'onAllComplete' : function() {
      'aphpfile.php'
    }

????洛尔

2 个答案:

答案 0 :(得分:3)

标准表单就足以上传,只需记住在表单中包含mime即可。那么您可以使用$ _FILES ['']来引用该文件。

然后你可以检查提供的文件名并查看它是否存在于文件系统中使用file_exists()检查文件名,或者如果你不需要保留旧文件,你可以使用perofrm文件移动和用临时目录中的new覆盖旧的

<?PHP
// this assumes that the upload form calls the form file field "myupload"
$name  = $_FILES['myupload']['name'];
$type  = $_FILES['myupload']['type'];
$size  = $_FILES['myupload']['size'];
$tmp   = $_FILES['myupload']['tmp_name'];
$error = $_FILES['myupload']['error'];
$savepath = '/yourserverpath/';
$filelocation = $svaepath.$name;
// This won't upload if there was an error or if the file exists, hence the check
if (!file_exists($filelocation) && $error == 0) {
    // echo "The file $filename exists";
    // This will overwrite even if the file exists
    move_uploaded_file($tmp, $filelocation);
}
// OR just leave out the "file_exists()" and check for the error,
// an if statement either way

?>

答案 1 :(得分:0)

尝试使用这段代码上传和替换文件

if(file_exists($newfilename)){
        unlink($newfilename);
    }

 move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $newfilename);