<?php
header("Content-type: $type");
echo $blobData;
?>
Ten kod wygląda idealnie OK. Jednak usłyszałem podobną skargę od innej osoby i udało mi się rozwiązać ten problem, zapewniając, że:
-
Skrypt php nie wyświetla żadnego dodatkowego znaku przed ani po wysłaniu binarnych danych obrazu.
-
Skrypt php jest zapisywany jako czysty plik tekstowy ASCII, a nie jako plik zakodowany w Unicode/UTF-8. Pliki PHP zakodowane w Unicode/UTF-8 mogą zawierać sygnaturę jako pierwsze bajty. Te bajty będą niewidoczne w twoim edytorze tekstu, ale serwer wyśle te kilka dodatkowych bajtów do przeglądarki przed danymi JPEG/GIF/PNG. Przeglądarka znajdzie zatem błędną sygnaturę na początku danych. Aby obejść ten problem, utwórz pusty plik tekstowy w notatniku, wklej kod php i zapisz plik w kodowaniu ANSI.