To jest stary wątek, ale dla kompletności: sensowne jest kodowanie obrazów, zwłaszcza małych (poniżej 1k), do użycia w css. W ten sposób zapisujesz jedno żądanie, które może potrwać dłużej, a może być jeszcze większe ze względu na obciążenie.
To zależy od tego, do czego potrzebujesz obrazu. Jeśli jest to wbudowany adres URL, jest to odpowiedni sposób. Nie jest to jednak identyczne ze zwykłym kodowaniem base64.
Pekka
Doskonała wskazówka, teraz utworzę funkcję edycji pliku do przesłania lub przywróć plik move_uploaded_file (), dzięki
Vinicius De Jesus
121
Łatwo:
$imagedata = file_get_contents("/path/to/image.jpg");// alternatively specify an URL, if PHP settings allow
$base64 = base64_encode($imagedata);
pamiętaj, że zwiększy to dane o 33%, a będziesz mieć problemy z plikami, których rozmiar przekracza twój memory_limit.
@anna to robi! Generalnie wystarczy kodowanie Base64.
Pekka
38
Skorzystaj również w ten sposób, aby przedstawić obraz w formacie kodowania base64 ... znajdź funkcję PHP, file_get_contenta następnie użyj funkcjibase64_encode
i uzyskaj wynik, aby przygotować str data:" . file_mime_type . " base64_encoded string. Użyj go w atrybucie img src. zobacz poniższy kod, czy mogę ci pomóc.
// A few settings
$img_file ='raju.jpg';// Read image path, convert to base64 encoding
$imgData = base64_encode(file_get_contents($img_file));// Format the image SRC: data:{mime};base64,{data};
$src ='data: '.mime_content_type($img_file).';base64,'.$imgData;// Echo out a sample image
echo '<img src="'.$src.'">';
curlabsolutnie nie jest „lepszy” niż, file_get_contentschyba że musisz dodać dodatkowe dane do połączenia np. poświadczenie. Co więcej, file_get_contentscofnie się do uzyskania zawartości lokalnego pliku, gdy to możliwe, nie wykonując bezużytecznego połączenia sieciowego.
Hissvard,
1
Możesz to również zrobić za pomocą curl, po prostu potrzebujesz ścieżki do pliku obrazu i przekaż go do funkcji podanej poniżej.
Odpowiedzi:
Myślę, że powinno to być:
źródło
Łatwo:
pamiętaj, że zwiększy to dane o 33%, a będziesz mieć problemy z plikami, których rozmiar przekracza twój
memory_limit
.źródło
Skorzystaj również w ten sposób, aby przedstawić obraz w formacie kodowania base64 ... znajdź funkcję PHP,
file_get_content
a następnie użyj funkcjibase64_encode
i uzyskaj wynik, aby przygotować str
data:" . file_mime_type . " base64_encoded string
. Użyj go w atrybucie img src. zobacz poniższy kod, czy mogę ci pomóc.źródło
Na wypadek, gdybyś (z jakiegokolwiek powodu) nie był w stanie używać
curl
anifile_get_contents
nie możesz obejść:źródło
Próbowałem użyć tego zasobu, ale ciągle pojawiał się błąd, ale powyższy kod działał idealnie.
Właśnie zastąpiłem IMAGE URL TUTAJ URL twojego obrazu - http://www.website.com/image.jpg
źródło
Bardzo prosty i powszechnie stosowany:
Uwaga: Typ Mime pliku zostanie dodany automatycznie (korzystając z pomocy tej dokumentacji PHP ).
źródło
Oto kod do przesłania w celu zakodowania i zapisania go w MySQL
Do wyświetlenia obrazu użyj tego
źródło
Oto przykład użycia wywołania cURL. Jest to lepsze niż funkcja file_get_contents () . Oczywiście użyj base64_encode ()
źródło
curl
absolutnie nie jest „lepszy” niż,file_get_contents
chyba że musisz dodać dodatkowe dane do połączenia np. poświadczenie. Co więcej,file_get_contents
cofnie się do uzyskania zawartości lokalnego pliku, gdy to możliwe, nie wykonując bezużytecznego połączenia sieciowego.Możesz to również zrobić za pomocą curl, po prostu potrzebujesz ścieżki do pliku obrazu i przekaż go do funkcji podanej poniżej.
źródło