Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Przesłanie obrazu do tabeli obrazek.
waqmaz
post
Post #1





Grupa: Zarejestrowani
Postów: 69
Pomógł: 0
Dołączył: 22.01.2011
Skąd: Murowana Goślina

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


  1. <?php
  2. require('funkcje_bazy.php');
  3.  
  4. $plik1_tmp = $_FILES['zdj']['tmp_name'];
  5. $plik1_nazwa = $_FILES['zdj']['name'];
  6. $plik1_rozmiar = $_FILES['zdj']['size'];
  7. $plik1_typ = $_FILES['zdj']['type'];
  8.  
  9. $sp1 = explode(".",$plik1_nazwa);
  10.  
  11. if(($sp1[1] == "jpg" or $sp1[1] == "gif" or $sp1[1] == "bmp" or $sp1[1] == "png") and (is_uploaded_file($plik1_tmp))){
  12. $lacz=lacz_bd();
  13.  
  14. $obraz = addslashes(fread(fopen($plik1_tmp, "r"), $plik1_rozmiar));
  15. $zapytanie = "insert into obrazek";
  16. $wynik = $lacz->query($zapytanie);
  17.  
  18. echo " $plik1_nazwa przesłany.";
  19. }
  20. else
  21. {
  22. echo "$plik1_nazwa nie przeslany.";
  23. }
  24.  
  25. ?>
  26. <form enctype="multipart/form-data" action="" method="POST">
  27. <input type="hidden" name="MAX_FILE_SIZE" value="5000" />
  28. <input name="zdj" type="file" />
  29. <input type="submit" value="Wyslij plik" />
  30. </form>


FUNKCJE_BAZY.PHP DZIAŁAJĄ, BO DO WSZYSTKIEGO SIĘ TAK ŁĄCZĘ.
W BAZIE JEST UTWORZONA TABELA obrazek z typem BLOB.
Kiedy jednak chcę coś wysłać, wciąż jest napisane: "$plik1_nazwa nie przeslany".
Co może być źle? Plik pisany przez innego użytkownika z tego forum.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
xdev
post
Post #2





Grupa: Zarejestrowani
Postów: 39
Pomógł: 3
Dołączył: 17.09.2011

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


Tak, dodatkowo nazwę pliku ukrywa sha1 wykonywany na jego zawartości (sha1_file). Każdy plik ma unikalną sumę kontrolną więc nie martwisz się, że jak jeden użytkownik załaduje 2 awatary pod tą samą nazwą to mechanizm cache przeglądarki tego nie złapie od razu. Po prostu plik będzie miał nazwę wygenerowaną przez ciebie i zmiany zawsze będą widoczne od razu.

To rozwiązanie typowo na CDN. Jak się zwiększa ruch podpinasz pod katalog z statycznymi plikami nginx i ustalasz cache-expire w nieskończoność, przeglądarka załaduje wszystkie awatary jedynie raz i już nigdy nie będzie musiała pytać po HTTP o aktualność plików. Jeszcze by się przydało, żebyś trzymał wszystkie pliki statyczne na subdomenie (odpadają cookie i można ustawić inne nagłówki / serwer)... chociaż i bez tego to dobre rozwiązanie.
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 16.10.2025 - 00:56