2013-12-16 3 views
0

Я делаю файл хостинг-сайта и около 95% сделано, но у вас есть одна проблема. Когда пользователь нажимает на свой файл, чтобы загрузить его, файл просто появляется в браузере. Мне нужно знать способ, которым я могу определить переменную $file в цикле while для загрузки. Переменная, что мне нужно сделать загружаемое окружен звездочками (*)Как загрузить файл с PHP или HTML?

LOOP:

$directory = 'uploads/' . $_SESSION['user'] . '/'; 

    if ($handle = opendir($directory)) { 
    echo '<h3>Your files are listed below</h3>';  

    while ($file = readdir($handle)) { 
     if ($file != '.' && $file != '..') { 
     echo '<a href="'.$directory.'/'.$file.'">' . *$file*.'<br>';  
     } 
    } 
    } 
+0

Вы можете разделить тип файла? –

+0

Тип файла будет отличаться, так как это служба хостинга файлов. –

ответ

0

Это будет выполняет на OnClick, с оповещения окне подтверждения

<?php 

$directory = 'uploads/' . $_SESSION['user'] . '/'; 

if(isset($_REQUEST['DelFile'])) { 
    $DeleteFile = $_REQUEST['DelFile']; 
    if(file_exists($directory.$DeleteFile)) { 
     @unlink($directory.$DeleteFile); 
     header("location:SamePageURL.php?msg=1"); 
    } else header("location:SamePageURL.php?msg=2"); 
} 

if ($handle = opendir($directory)) { 
echo '<h3>Your files are listed below</h3>';  
    while ($file = readdir($handle)) { 
     if ($file != '.' && $file != '..') { 
      echo '<a target="_blank" href="'.$directory.'/'.$file.'">' . $file.' <a href="javascript:deletedata('.$file.')>Delete</a> <br>'; 
     } 
    } 
} 

if(isset($_REQUEST['msg'])) { 
    $Message = $_REQUEST['msg']; 
    if($Message == 1) echo "File deleted sucessfully"; 
    else if($Message == 1) echo "File not found"; 
} 
?> 
<script type="text/javascript">function deletedata(FileName){if(window.confirm("Wish to Delete (Press OK) or Cancel")) window.location="SamePageURL.php?DelFile="+FileName;}</script> 
+0

Это показывает javascript на странице –

+0

Обязательно поместите javascript в заголовок тега страницы. –

2

Обычно каждый не текстовый файл загружается автоматически. Для текстовых файлов необходимо указать заголовок в начале вашего скрипта:

header("Content-Disposition: attachment; filename=".$file); 
+0

изображения просто открываются в браузере, и я уже отправил заголовки –

+0

true, забыли об этом, попробуйте тег заголовка и укажите имя файла. Это работает, плохо использовал его вместе с xml, поэтому я могу загрузить их, и это сработало. –

+0

Можете ли вы привести пример, пожалуйста? Я новичок в PHP –

0

Вы должны перенаправить пользователей второй сценарий для обработки запроса:

download.php файл = somepath/somefile.ext

<?php 
$file_url = $_GET['file']; 
header("Content-disposition: attachment; filename=\"" . basename($file_url) . "\""); 
readfile($file_url); 
?> 

Ваша ссылка будет:

echo '<a href="download.php?file='.$directory.'/'.$file.'">' . $file.'<br>'; 
+0

Где разместить первую часть? –

+0

Во втором файле ** download.php ** –

+0

Итак, просто 'include()' download.php? –

Смежные вопросы