PHP - 如何为用户提供他们上传的文件的下载链接

时间:2014-01-20 12:36:08

标签: php file file-sharing self-hosting

我创建了一个简单的upload.php文件。 但我想创建一个文件托管网站,用户无需登录/注册即可上传文件并获取下载链接,以便其他人可以使用该链接下载文件。就像在datafilehost.com上一样。

我的html文件是: -

<form enctype="multipart/form-data" action="upload.php" method="POST">
Please choose a file: <input name="uploaded" type="file" /><br />
<input type="submit" value="Upload" />
</form>

我简单的php fie是: -

    <?php 
 $target = "upload/"; 
 $target = $target . basename( $_FILES['uploaded']['name']) ; 
 $ok=1; 

 //This is our size condition 
 if ($uploaded_size > 350000) 
 { 
 echo "Your file is too large.<br>"; 
 $ok=0; 
 } 

 //This is our limit file type condition 
 if ($uploaded_type =="text/php") 
 { 
 echo "No PHP files<br>"; 
 $ok=0; 
 } 

 //Here we check that $ok was not set to 0 by an error 
 if ($ok==0) 
 { 
 Echo "Sorry your file was not uploaded"; 
 } 

 //If everything is ok we try to upload it 
 else 
 { 
 if(move_uploaded_file($_FILES['uploaded']['tmp_name'], $target)) 
 { 
 echo "The file ". basename( $_FILES['uploadedfile']['name']). " has been uploaded"; 
 } 
 else 
 { 
 echo "Sorry, there was a problem uploading your file."; 
 } 
 } 
 ?> 

请帮帮我........ 谢谢。

2 个答案:

答案 0 :(得分:0)

echo http://'.$_SERVER ['HTTP_HOST']。rtrim(dirname($ _SERVER ['REQUEST_URI']),'\ /')。'/'。$ uploadpath。'

我不会使用你的代码,因为它来自about.com文章,旨在帮助用php教授文件上载的概念,它没有任何接近你需要的安全性。

答案 1 :(得分:0)

自PHP 4.1.0起存在全局$_FILES(如果使用早期版本,则使用$ HTTP_POST_FILES)。这些数组将包含所有上传的文件信息..

$_FILES['userfile']['name'] 

客户端计算机上文件的原始名称。     $ _FILES [ 'userfile的'] [ '类型'] 文件的mime类型,如果浏览器提供了此信息。一个例子是“image / gif”。但是,在PHP方面没有检查这个mime类型,因此不会将其值视为理所当然。

$_FILES['userfile']['size']

上传文件的大小(以字节为单位)。

$_FILES['userfile']['tmp_name']

上传文件存储在服务器上的文件的临时文件名。

$_FILES['userfile']['error']

与此文件上传相关联的错误代码。这个元素是在PHP 4.2.0中添加的

在你的情况下,你已经定义了文件名和文件sotred的路径。

$file = $_FILES['userfile']['name'];
$path = $_FILES['userfile']['tmp_name'].$_FILES['userfile']['name'].ext;

if (file_exists($path)) {
     // show user download link
}