Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Dziwny problem z pobranym przez skrypt php plikiem
blackstone
post 23.05.2020, 23:19:22
Post #1





Grupa: Zarejestrowani
Postów: 94
Pomógł: 0
Dołączył: 19.03.2015

Ostrzeżenie: (0%)
-----


Mam dziwny problem z plikiem zdjęciowym który chce pobrać przez plik php do downloadu. Wydaje się że plik zdjęciowy ściąga się poprawnie ale gdy chce go otworzyć nagle okazuje że nie działa bo prawdopodbnie jest w złym formacie ( o czym informuje program do ogladania zdjęć). Gdy zajrzeć do właściwości pobranej fotki, to wszystko wydaje się być wporządku. Tymczasem gdy ten sam plik otworze w folderze serwera ( mówimy na razie o zwykłym webservie na windows) tym samym programem do otwierania zdjęć, to wtedy działa bez zarzutu. Poniżej fragment kodu jakiego używam do downloadowania plików. Czy to możliwe by podczas downloadu plik jakoś był uszkadzany? Z góry dzięki za odpowiedzi!

  1.  
  2.  
  3. $filetype=filetype($file);
  4.  
  5. $filename=basename($file);
  6.  
  7. header("Content-Type: ".$filetype);
  8.  
  9. header ("Content-Length: ".filesize($file));
  10.  
  11. header ("Content-Disposition: attachment; filename=".$filename);
  12.  
  13. readfile($file);
  14.  


Ten post edytował blackstone 23.05.2020, 23:20:46
Go to the top of the page
+Quote Post
batman
post 24.05.2020, 05:37:10
Post #2





Grupa: Moderatorzy
Postów: 2 920
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




Otwórz pobrany plik edytorem tekstowym i sprawdź zawartość pliku. Możliwe, że skrypt gdzieś się wywala i zamiast obrazu zapisuje do pliku komunikat błędu. Poza tym zajrzyj do logów, powinieneś znaleźć tam jakieś informacje na temat ewentualnych błędów.

Jeśli miałbym zgadywać, to stawiałbym, że zmienna $file zawiera niepoprawną ścieżkę do pliku.


--------------------
I would love to change the world, but they won't give me the source code.
My software never has bugs. It just develops random features.
--------------------
blog
Kuchnia Kopytka
www.wykangurzeni.pl
Go to the top of the page
+Quote Post
trueblue
post 24.05.2020, 06:41:35
Post #3





Grupa: Zarejestrowani
Postów: 5 875
Pomógł: 1612
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


Nagłówek Content-Type powinien zawierać mime pliku, a nie typ (który obecnie w Twoim przypadku ma wartość "file").
Sam go więc "uszkadzasz" stosując filetype zamiast mime-content-type.


--------------------
Go to the top of the page
+Quote Post
blackstone
post 25.05.2020, 15:34:26
Post #4





Grupa: Zarejestrowani
Postów: 94
Pomógł: 0
Dołączył: 19.03.2015

Ostrzeżenie: (0%)
-----


Dziwna sprawa. Sprawdziłem edytorem tekstowym plik i jedyna informacja to "CREATOR: gd-jpeg v1.0 (using IJG JPEG v80), default quality". Trochę przed i dalej jest cała masa różnych znaczków. Co do ścieżki to sprawdziłem plik za pomocą is_file() i zwracał prawdę wykrywając plik. Co do typefile to zmieniłem chwilowo na funkcje mime_content_type lecz wtedy wyskakiwało mi " Call to undefined function mime_content_type()" . Sprawdziłem za pomocą phpversion() swoją wersje php i mam 5.3.20 a w dokumentacji ta funkcja powinna być od dostępna od php 4.3.0. Taka sytuacja smile.gif nie kojarze o co chodzi, zwłaszcza z tym mine-em. Miał ktoś coś takiego?
Go to the top of the page
+Quote Post
batman
post 28.05.2020, 10:56:44
Post #5





Grupa: Moderatorzy
Postów: 2 920
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




trueblue ma rację, filetype jest tutaj winowajcą. Spróbuj czegoś takiego
Kod
<?php
header('Content-Transfer-Encoding: Binary');
header('Content-Type: application/octet-stream');
header('Content-disposition: attachment; filename="'.basename($file).'"');
header('Content-Length: '.filesize($file));
readfile($file);

Pisane z głowy, więc mógł wkraść się jakiś błąd.


--------------------
I would love to change the world, but they won't give me the source code.
My software never has bugs. It just develops random features.
--------------------
blog
Kuchnia Kopytka
www.wykangurzeni.pl
Go to the top of the page
+Quote Post
blackstone
post 2.06.2020, 20:30:52
Post #6





Grupa: Zarejestrowani
Postów: 94
Pomógł: 0
Dołączył: 19.03.2015

Ostrzeżenie: (0%)
-----


Dzięki.Niestety efekt ten sam. Lecz wydaje mi się że problem może być gdzieś w ustawieniach serwera gdyż kiedyś sam zrobiłem downloader na podstawie tego co w necie i działało.
Go to the top of the page
+Quote Post
trueblue
post 2.06.2020, 20:31:58
Post #7





Grupa: Zarejestrowani
Postów: 5 875
Pomógł: 1612
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


Wrzuć gdzieś pobrany plik i załącz tutaj link.


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 7.07.2020 - 04:10