<?php // @Author 老虎会游泳 $file = 'my.apk'; //上传后的文件名,保存在当前目录 header('Content-Type: text/html; charset=utf-8'); $path = './'.$file; /** * 取得可读的文件大小 * * @url http://outofmemory.cn/code-snippet/3236/php-jiangyi-byte-danwei-indicate-file-size-turn-huawei-kedu-xing-indicate */ function filesizehm($fileSize) { $unit = array(' Bytes', ' KB', ' MB', ' GB', ' TB', ' PB', ' EB', ' ZB', ' YB'); $i = 0; /* while($fileSize >= 1024 && $i < 8) { $fileSize /= 1024; ++$i; } */ /* 以上代码还可以优化一下 由于计算机做乘法比做除法快 */ $inv = 1 / 1024; while($fileSize >= 1024 && $i < 8) { $fileSize *= $inv; ++$i; } //return sprintf("%.2f", $fileSize) . $unit[$i]; // 改正上一条结果为整数,输出却带两个无意义0的小数位的浮点数 $fileSizeTmp = sprintf("%.2f", $fileSize); // 以下代码在99.99%的情况下结果会是正确的,除非你使用了"超超大数"。:) return ($fileSizeTmp - (int)$fileSizeTmp ? $fileSizeTmp : $fileSize) . $unit[$i]; } ?> <!DOCTYPE html> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"/> <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=1" /> <title>文件上传</title> <style> body { word-wrap: break-word; word-break: break-all; padding: 2px 5px; background-color: #FFFFFF; color: #000000; max-width: 1024px; margin: 0px auto; box-shadow: 0 0 15px #ccc; } p, div { overflow: hidden; } p { margin: 0px; padding: 2px 1px 2px 1px; } .tp { margin: 0px; background-color: #E6F3FF; } a { text-decoration: none; color: #08C; } form { margin: 0px; padding: 0px; } img, input, textarea { max-width: 100%; vertical-align: middle; } hr { height: 1px; border: 1px solid #BED8EA; border-left: none; border-right: none; } </style> </head> <body> <div class="tp"> <p><a href="https://ssl.hu60.cn/q.php/user.info.20140.html">笑对vs人生</a>的APP发布工具</p> </div> <hr> <div id="upload"> <form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>" method="post" enctype="multipart/form-data"> <input type="file" name="file" id="file"> <input type="submit" name="upload" id="upload" value="上传"> </form> <?php //文件上传处理 if (isset($_FILES['file'])) { $ok = move_uploaded_file($_FILES['file']['tmp_name'], $path); if ($ok) { echo '<p>上传成功</p>'; } else { echo '<p>上传失败</p>'; } } //文件上传处理结束 ?> </div> <hr> <div class="tp"> <p>当前文件状态(<a href="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>">刷新</a>):</p> <?php if (is_file($path)) { echo '<p>文件:<a href="'.htmlspecialchars($file).'">'.htmlspecialchars($file).'</a></p>'; $size = filesize($path); echo '<p>大小:'.filesizehm($size).'</p>'; $time = filemtime($path); echo '<p>上传时间:'.date('Y-m-d H:i:s', $time).'</p>'; } else { echo '<p>还没有上传文件</p>'; } ?> </div> </body> </html>
这里有例子:http://www.w3school.com.cn/php/php_file_upload.asp
upload.php(3.29 KB)
使用方法:
1. 把文件改名为机密的文件名,比如“xafjoqr6ue44.php”,防止别人猜到后乱上传。
2. 文件放在你的PHP空间某个文件夹,然后访问。
3. 确保文件所在的目录可以写入。然后试试上传文件。
效果图:
代码: