2014-01-20 6 views
-1

Я создал простой файл upload.php. Но я хочу создать сайт для размещения файлов, на котором пользователи могут загружать файлы без регистрации/регистрации и получать ссылки на скачивание, чтобы другие могли загружать их файл по этой ссылке. Как на datafilehost.com.PHP - Как дать пользователям скачать ссылку на файл, который они загрузили

Мой 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 тьфу является: -

<?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

наверняка, если бы они загрузили изображение, это просто покажет изображение, а затем предложит его загрузить? В этом случае проблема может быть решена с помощью htaccess –

+3

'if ($ uploaded_type ==" text/php ")' - это нигде рядом с адекватной и достаточной проверкой, оно рано или поздно взорвется вам в лицо. Я бы посоветовал вам воздерживаться от «создания сайта для размещения файлов» _ до тех пор, пока ваши знания настолько минимальны. – CBroe

ответ

0

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

Я бы не использовал ваш код, как из статьи about.com, чтобы помочь обучить концепцию fileuploads с помощью php, он не имеет нигде рядом с той степенью безопасности, в которой вы нуждаетесь.

+0

, пожалуйста, избегайте $ _SERVER ['REQUEST_URI'], используя html_entities(), поскольку это может вызвать проблемы безопасности, такие как xss –

0

Глобальный $_FILES существует с PHP 4.1.0 (вместо этого используйте $ HTTP_POST_FILES, если используете более раннюю версию). Эти массивы будут содержать всю информацию о загруженном файле.

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

Оригинальное название файла на клиентской машине. $ _FILES ['userfile'] ['type'] Тип mime файла, если браузер предоставил эту информацию. Примером может служить «image/gif». Этот тип mime, однако, не проверяется на стороне PHP и поэтому не принимает его значение как должное.

$_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 
}