Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: obrazek w HTML
Forum PHP.pl > Forum > PHP
daimon
Witam,

jest mały edytorek WYSIWYG służący do redagowania maili w html'u, które następnie wysyłane są do małej grupy znajomych. Dany użytkownik może wklepywać tekst i formatować go (jak to w edytorach;)). Następnie, po wysłaniu, wiadomość (html) zapisywana jest do bazy (postgres). W projekcie istnieje też opcja podglądu wysłanych wiadomości. Działa ona na zasadzie wyciągania z bazy żądanej treści i wyświetlaniu jej jako stronka.

Problem: przy edytowaniu wiadomości user może dodać obrazek ze swojego dysku. W kodzie widnieje on jako np. C:\obrazek.gif. Ale równie dobrze może to być D:\costam\obrazek.jpg itd. Jedynym człowiekiem, który zobaczy te obrazki przy przeglądaniu wysłanych wcześniej maili jest ten, który zredaguje daną wiadomość (i nie skasuje tych plików od siebie z dysku;)) Jak rozwiązać problem dostępności obrazków dla wszystkich ?

Ps. do wysyłania maili używam klasy Mime.

--
Pozdrawiam
daimon
yavaho
Cytat
Problem: przy edytowaniu wiadomości user może dodać obrazek ze swojego dysku. W kodzie widnieje on jako np. C:\obrazek.gif.
Wlasnie w Twoim przypadku user nie dodaje zadnego obrazka tylko link do obrazka.
Cytat
Jak rozwiązać problem dostępności obrazków dla wszystkich ?
Uzytkownik musi miec mozliwosc wyslania obrazka na serwer, a nie tylko podania lokalizacji obrazka, ktorego ma u siebie w domu na dysku - bo to sie mija z celem. Sama lokalizacje obrazka mozna podawac w przypadku gdy on lezy juz gdzies na jakims serwerze w internecie.
daimon
Cytat(yavaho @ 2005-05-08 20:51:47)
Wlasnie w Twoim przypadku user nie dodaje zadnego obrazka tylko link do obrazka.


masz rację, źle się wyraziłem.
w takim razie: czy można wysłać plik nie korzystając z inputa? Dajmy na to, że filtruje treść wiadomości i wyciągam z niej ścieżki, a następnie na tej podstawie przerzucam pliki na serwer, a w tekście zamieniam np. c:\costam.gif na /sciezka/na/serwerze/costam.gif. Czy może jest lepsze rozwiązanie?

--
Pozdrawiam
daimon
yavaho
Wysylasz na serwer obrazek metoda POST
  1. <form action="index.php" method="post" enctype="multipart/form-data">
  2. <input type="file" name="thefiles">
  3. <input type="submit" name="Submit" value="wyslij">
  4. </form>
Potem za pomoca php nadajesz obrazkowi indywidualna nazwa i kopiujesz obrazek do odpowiedniego katalogu na serwerze, potem zapisujesz ta lokalizacje (nazwe obrazka) w bazie danych.
  1. <?php
  2. $obrazek='katalog/plik.jpg';
  3. if(is_uploaded_file($thefiles)) {
  4. if(copy($thefiles, $obrazek)) {
  5.  //tutaj zapisujesz do bazy danych wartosc zmiennej $obrazek
  6. }
  7. }
  8. ?>
Do tego musisz sobie jeszcze dodac sprawdzenie czy obrazek jest na pewno plikiem typu jpg, gif, png. Czy nie za duzo wazy i czy nie ma za duza rozdzielczosc. Kazdemu obrazkowi musisz nadac idywidualna nazwe - mozesz do tego wykorzystac funkcje Time(). Raczej nie mozesz pozostawic mozliwosc wybor nazwy userom, bo czesto by sie zdarzalo ze pliki na serwerze mialy by ta sama nazwe.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.