Dziwny problem z pobranym przez skrypt php plikiem |
Dziwny problem z pobranym przez skrypt php plikiem |
23.05.2020, 23:19:22
Post
#1
|
|
Grupa: Zarejestrowani Postów: 98 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!
Ten post edytował blackstone 23.05.2020, 23:20:46 |
|
|
24.05.2020, 05:37:10
Post
#2
|
|
Grupa: Moderatorzy Postów: 2 921 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. |
|
|
24.05.2020, 06:41:35
Post
#3
|
|
Grupa: Zarejestrowani Postów: 6 761 Pomógł: 1822 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. -------------------- |
|
|
25.05.2020, 15:34:26
Post
#4
|
|
Grupa: Zarejestrowani Postów: 98 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 nie kojarze o co chodzi, zwłaszcza z tym mine-em. Miał ktoś coś takiego?
|
|
|
28.05.2020, 10:56:44
Post
#5
|
|
Grupa: Moderatorzy Postów: 2 921 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. |
|
|
2.06.2020, 20:30:52
Post
#6
|
|
Grupa: Zarejestrowani Postów: 98 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.
|
|
|
2.06.2020, 20:31:58
Post
#7
|
|
Grupa: Zarejestrowani Postów: 6 761 Pomógł: 1822 Dołączył: 11.03.2014 Ostrzeżenie: (0%) |
Wrzuć gdzieś pobrany plik i załącz tutaj link.
-------------------- |
|
|
Wersja Lo-Fi | Aktualny czas: 23.04.2024 - 07:32 |