Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z downloadem pliku 'doc
Forum PHP.pl > Forum > PHP
gam3r
Witam, mam pewien problem, chce zrobić download pliku w formacie .doc, próbowałem już wiele sposobów m.in. z manuala php.net z przykładów tam zamieszczonych, w jednej z książek które mam równieżto tam opisane ale nic z tego, aha i na forum też szukałem ale też to nie działa, no chyba że coś źle robię.
No więc tak: w pasku url jest zmienna $_GET['id'] która przechowuj nazwe pliku, tzn. jego pierwszą część, bo każdy plik możliwy do ściągnięcia ma rozszerzenie .doc, pliki te znajdują się w folderze data/cribs/. Naciskam link aby zassać plik, no i wszystko ładnie się zapisuje, ale kiedy go otwieram w środku mam zapisany plik HTML strony w formacie .doc a nie ten plik o który mi chodziło.
Mam apache 2, php 4.3.10 pod WIN, przeglądarki IE & FF, poroszę o pomoc:)
  1. <?php
  2. $id=$_GET['id'];
  3. $filesize=filesize("data/cribs/$id.doc");
  4. $filename='$id.doc';
  5.  
  6. $file="data/cribs/".$filename;
  7.  
  8. header("Content-type: application/msword");
  9. header("Content-Transfer-Encoding: Binary");
  10. header("Content-length: $filesize");
  11. header("Content-disposition: attachment; filename=$filename");
  12. readfile("$file");
  13. ?>
nospor
masz blad. źle generujesz nazwe pliku:
masz
  1. <?php
  2. $filename='$id.doc';
  3. ?>

a powinno byc:
  1. <?php
  2. $filename="$id.doc";
  3. ?>

w pojedynczych ciapkach (') nie interpretuje zmiennych
gam3r
kurna no rzeczywiście biggrin.gif taki banał ehhh worriedsmiley.gif dzięki teraz wszystko ok
martix
Witam. Mam taki sam problem i już nie wiem jak sobie z nim poradzić sciana.gif . Wyświetla sie okno zapisywania, zapisuje plik, wszystko pieknie, ładnie , ale po otwarciu nie pojawia sie właściwa treść pliku, tylko treść strony. A przy zdjęciach, pisze że plik jest niedostępny. Co jest nie tak? Błagam, pomóżcie...
Kod
$plik=$dane['p_nazwa'];    header('Content-Type: application/x-unknown');    header('Content-Disposition: attachment; filename='.$plik.'');    readfile ('pliki/'.$plik.'');
nospor
zakladam ze twoj serwer obsluguje php winksmiley.jpg

skrypty zaczynaj tak <?php a nie <?
martix
mam rozpoczęty od <?php , walcze juz z tym drugi dzień.
webasek
A spróbuj tak:

  1. <?php
  2. $d = "pełna ścieżka pliku";
  3. header("Content-Type: application/save");
  4. header("Cache-Control: public, must-revalidate");
  5. header("Content-Disposition: attachment; filename=".basename($d).";");
  6. $fh = readfile($d);
  7. fpassthru($fh);
  8. ?>
martix
Niestety nie pomoglo. Plik jest ściągany z ftp. Nie wiem czy to ma znaczenie. Oprócz kodu łaczenia z ftp, pobieranie jest zawarte w pętli i wygląda tak:

CODE

<?php
$szukkat = "select * from `dopobrania` where id_pliku='$ust'";
$odpszukkat = mysql_query ($szukkat);
while($dane = mysql_fetch_assoc($odpszukkat))
{
$d = "/marta/pliki/test.txt";
header("Content-Type: application/save");
header("Cache-Control: public, must-revalidate");
header("Content-Disposition: attachment; filename=".basename($d).";");
$fh = readfile($d);
fpassthru($fh);

}
?>

To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.