寻找一个简单的php文件上传(和下载)脚本


Looking for a simple php file upload (and download) script

我正在考虑编写一个相当简单的php脚本,允许用户输入他们的电子邮件地址,上传文件,并输入另一个人的电子邮件地址。文件上传后,它会通过电子邮件向两个人发送下载该文件的URL。一个可选的密码可能比较好。

这是为了解决电子邮件附件大小的限制。我知道有互联网服务可以做到这一点,但我希望文件上传到我的服务器,并在我的其他安全控制范围内。

只是想知道是否有人知道一个简单的脚本在那里,已经存在这样做?

Uploadify (http://www.uploadify.com)是一个文件上传的开源解决方案。

[编辑]这是一些来自Uploadify:

的演示代码
<script type="text/javascript">
$(function() {
   $('#file_upload').uploadify({
          'uploader'  : '/uploadify/uploadify.swf',
          'script'    : '/uploadify/uploadify.php',
          'cancelImg' : '/uploadify/cancel.png',
          'folder'    : '/uploads',
          'removeCompleted' : true,
          'sizeLimit'   : 102400
       });              
    });
</script>
<div class="demo-box">
   <input id="file_upload" type="file" name="Filedata" />
   <p><a href="javascript:$('#file_upload').uploadifyUpload()">UploadFiles</a></p>        </div>
</div>

另一个简单的php文件上传脚本,带密码保护:
(制作一个yourfile.php并插入下面的代码。然后把你的文件。php放到你的网站上)

<?php
$pass = "YOUR_PASSWORD";
session_start();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html><head><meta http-equiv="Content-Type" content="text/html; charset=windows-1256" /></head><body>
<?php
if (!empty($_GET['action']) &&  $_GET['action'] == "logout") {session_destroy();unset ($_SESSION['pass']);}
$path_name = pathinfo($_SERVER['PHP_SELF']);
$this_script = $path_name['basename'];
if (empty($_SESSION['pass'])) {$_SESSION['pass']='';}
if (empty($_POST['pass'])) {$_POST['pass']='';}
if ( $_SESSION['pass']!== $pass) 
{
    if ($_POST['pass'] == $pass) {$_SESSION['pass'] = $pass; }
    else 
    {
        echo '<form action="'.$_SERVER['PHP_SELF'].'" method="post"><input name="pass" type="password"><input type="submit"></form>';
        exit;
    }
}
?>

<form enctype="multipart/form-data" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">
Please choose a file: <input name="file" type="file" /><br />
<input type="submit" value="Upload" /></form>

<?php 
if (!empty($_FILES["file"]))
{
    if ($_FILES["file"]["error"] > 0)
       {echo "Error: " . $_FILES["file"]["error"] . "<br>";}
    else
       {echo "Stored file:".$_FILES["file"]["name"]."<br/>Size:".($_FILES["file"]["size"]/1024)." kB<br/>";
       move_uploaded_file($_FILES["file"]["tmp_name"],$_FILES["file"]["name"]);
       }
}
    // open this directory 
    $myDirectory = opendir(".");
    // get each entry
    while($entryName = readdir($myDirectory)) {$dirArray[] = $entryName;} closedir($myDirectory);
    $indexCount = count($dirArray);
        echo "$indexCount files<br/>";
    sort($dirArray);
    echo "<TABLE border=1 cellpadding=5 cellspacing=0 class=whitelinks><TR><TH>Filename</TH><th>Filetype</th><th>Filesize</th></TR>'n";
        for($index=0; $index < $indexCount; $index++) 
        {
            if (substr("$dirArray[$index]", 0, 1) != ".")
            {
            echo "<TR>
            <td><a href='"$dirArray[$index]'">$dirArray[$index]</a></td>
            <td>".filetype($dirArray[$index])."</td>
            <td>".filesize($dirArray[$index])."</td>
                </TR>";
            }
        }
    echo "</TABLE>";
    ?>