Как передать переменные из ссылок в PHP? - PullRequest
0 голосов
/ 09 сентября 2018

Я создал страницу indes.php со следующим кодом:

    <?php

include "db.php";

$select="SELECT *FROM alldocs ";

$query=mysqli_query($conn,$select);

<form action="upload.php" method="POST" enctype="multipart/form-data">



 <input type="text" name="name" placeholder="name"><br><br>

 <input type="file" name="file" ><br><br>

 <input type="submit" name="submit" value="submit"><br><br>



</form>

<div class="box-info">

    <?php

        while($row=mysqli_fetch_assoc($query)){

            echo $row['name'].'<br>'.

            '<a href="downloud.php?get=$path">downloud file</a>    <br>';}

    ?>

</div>

тогда я создал upload.php вот так

<?php

if(isset($_POST['submit'])){



include "db.php";

$name   =$_POST['name'];

$file   =$_FILES['file'];

$fileName   =$file['name'];

$fileTmp    =$file['tmp_name'];

$path='downloud/$fileName';

if(move_uploaded_file($fileTmp , $path)){

    $insert=" INSERT INTO alldocs(name,path) VALUES('$name','$path')";

    $query=mysqli_query($conn,$insert);

    header("Location:index.php");

}}

?>   

Теперь у меня есть index.pho в ссылке, которую я пытался подключить по пути get = $, чтобы я мог перейти на следующую страницу, которая позволит загрузить путь из БД следующим образом:

<?php 

if(isset($_GET['get'])){ 



    include "db.php";

    $path=$_GET['get'];



    $select="SELECT*FROM alldocs WHERE path='$path';" ;

    $query=mysqli_query($conn,$select);



    header('Conetent-type:application/octet-stream');

    header('Conetent-disposition:attachment;filename="'.basename($path).'"' );

    header('Conetent-lenght:.filesize($path)'); 

    readfile($path);

}

?> 

Поэтому, пожалуйста, если кто-то может указать мне на ошибку, которую я сделал в этом коде, потому что я всегда получаю эту ошибку WARNING: readfile($path); as undefined!

Ответы [ 2 ]

0 голосов
/ 24 сентября 2018

Проблема моего кода заключалась в том, что я не правильно указал путь, поэтому для:

<?php

включаем "db.php";

$ id = $ _ GET['id'];

$ query = "SELECT * FROM test WHERE id = '$ id'";

$ result = mysqli_query ($ conn, $ query);

while ($ row = mysqli_fetch_assoc ($ result)) {

$path = $row['path'];   <--  //*getting the path *//-->

header('Content-Disposition:attachment; filename ='.$path.'');    <--// obviously i 
                                                               don't know if the 
                                                               basename is needed 
                                                               here *//-->
header('Content-type:application/octent-strem'); 
header('Content-lenght='.filesize($path)); 

readfile($path);

}

этот код работает для загрузки файлов / изображений!

0 голосов
/ 09 сентября 2018

Вы забыли пройти путь

header("Location:index.php");

Должно быть

header("Location:index.php?get=".urlencode($path));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...