Как я могу скачать файл с PHP или HTML?

0

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

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
    Тип файла будет отличаться, так как это файловый хостинг.
Теги:
file
download
xhtml

4 ответа

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
    правда, забыл об этом, попробуйте тег заголовка и укажите имя файла. Это работает, я плохо использовал его вместе с XML, чтобы я мог скачать их, и это сработало.
Показать ещё 2 комментария
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
Показать ещё 16 комментариев
0

проблема - заголовок, проверьте ссылку для получения дополнительной информации:

http://en.wikipedia.org/wiki/List_of_HTTP_header_fields

Ещё вопросы

Сообщество Overcoder
Наверх
Меню