用php上传和重命名zip

时间:2011-08-21 00:13:09

标签: php upload

我正在尝试允许用户向我提交zip文件。我还想重命名它们,以便没有冲突。

此代码不适用于zip文件扩展名。我无法弄清楚为什么;如果我将扩展名更改为图片或其他功能,则可以完美运行。

<?php

define ("MAX_SIZE","1000000");

function getExtension($str) {
$i = strrpos($str,".");
if (!$i) { return ""; }
$l = strlen($str) - $i;
$ext = substr($str,$i+1,$l);
return $ext;
}

$errors=0;

if(isset($_POST['Submit']))
{

$image=$_FILES['image']['name'];

if ($image)
{

$filename = stripslashes($_FILES['image']['name']);

$extension = getExtension($filename);
$extension = strtolower($extension);

if (($extension != "zip"))
{

echo '<h1>Unknown extension!</h1>';
$errors=1;
}
else
{

$size=filesize($_FILES['image']['tmp_name']);

if ($size > MAX_SIZE*1024)
{
echo '<h1>You have exceeded the size limit!</h1>';
$errors=1;
}

$image_name=time().'.'.$extension;

$newname="./zips/".$image_name;

$copied = copy($_FILES['image']['tmp_name'], $newname);
if (!$copied)
{
echo '<h1>Copy unsuccessfull!</h1>';
$errors=1;
}}}}

if(isset($_POST['Submit']) && !$errors)
{
header( 'Location: uploads.html' ) ;
}
?>


<form name="newad" method="post" enctype="multipart/form-data" action="upload.php">
<table>
<tr><td><input type="file" name="image"></td></tr>
<tr><td><input name="Submit" type="submit" value="Upload Zip"></td></tr>
</table>
</form>

1 个答案:

答案 0 :(得分:1)

尝试使用move_uploaded_file代替复制。