Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Obrazek z input dynamicznie się pojawia
Ciubas
post 7.07.2011, 14:18:23
Post #1





Grupa: Zarejestrowani
Postów: 40
Pomógł: 0
Dołączył: 14.09.2003
Skąd: K-ce

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


witam,

mam pytanie mam taki formularz:

  1. ..
  2. <p><label for="picture">Picture</label><input type="file" name="picture" /></p>
  3. <p><input type="submit" value="Create" /></p>
  4. ..


Czy da się zrobić tak aby obrazek od razu się pojawiał? Czyli wczytywał dynamicznie z dysku po przez js a nie przeładowanie strony?

Potrzebuję odczytać z obrazka klika rzeczy które wprowadzam na resztę formularza i to znacznie ułatwiło by mi zadanie.
Go to the top of the page
+Quote Post
wrotek
post 8.07.2011, 19:50:35
Post #2





Grupa: Zarejestrowani
Postów: 20
Pomógł: 1
Dołączył: 6.07.2011

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


http://www.atwebresults.com/php_ajax_image_upload/
Go to the top of the page
+Quote Post
Ciubas
post 9.07.2011, 12:35:52
Post #3





Grupa: Zarejestrowani
Postów: 40
Pomógł: 0
Dołączył: 14.09.2003
Skąd: K-ce

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


Mi nie zależy aby to wrzucał na serwer w sumie, tylko lokalnie czytał z dysku - czyli aby ścieżka do pliku z pola <input> dynamicznie została wczytana gdzieś obok do <img src=""/> - macie jakiś pomysł?
Go to the top of the page
+Quote Post
kamil4u
post 9.07.2011, 13:25:13
Post #4





Grupa: Zarejestrowani
Postów: 2 350
Pomógł: 512
Dołączył: 4.01.2009
Skąd: Wrocław / Świdnica

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


Ze względów bezpieczeństwa nie jest to raczej możliwe smile.gif


--------------------
Go to the top of the page
+Quote Post
Rid
post 9.07.2011, 14:12:48
Post #5





Grupa: Zarejestrowani
Postów: 715
Pomógł: 47
Dołączył: 5.12.2010

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


Cytat
Ze względów bezpieczeństwa nie jest to raczej możliwe

Przecież ,banery reklamowe zmieniają obrazy co jakiś czas,więc dynamiczne wczytywanie obrazów, chyba jest możliwe.

Ten post edytował Rid 9.07.2011, 14:13:33
Go to the top of the page
+Quote Post
Ciubas
post 9.07.2011, 14:33:19
Post #6





Grupa: Zarejestrowani
Postów: 40
Pomógł: 0
Dołączył: 14.09.2003
Skąd: K-ce

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


Jakiego bezpieczeństwa? Skoro mogę wczytać obrazek:

<img src="C:/dysk/obrazek.jpg"/> to musi się dać zmienić to przez js na obrazek3.jpg

No chyba, że ja nie rozumiem czym jest bezpieczeństwo...
Go to the top of the page
+Quote Post
mortus
post 9.07.2011, 14:48:57
Post #7





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

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


Znalezione kiedyś w sieci:
  1. <head>
  2. <script type="text/javascript">
  3. <!--
  4. // Begin
  5. /* This script and many more are available free online at
  6. The JavaScript Source!! <a href="http://javascript.internet.com" target="_blank">http://javascript.internet.com</a>
  7. Created by: Abraham Joffe :: <a href="http://www.abrahamjoffe.com.au/" target="_blank">http://www.abrahamjoffe.com.au/</a> */
  8. /***** CUSTOMIZE THESE VARIABLES *****/
  9. // width to resize large images to
  10. var maxWidth = 500;
  11. // height to resize large images to
  12. var maxHeight = 500;
  13. // valid file types
  14. var fileTypes = ["bmp", "gif", "png", "jpg", "jpeg"];
  15. // the id of the <strong class="highlight">preview</strong> <strong class="highlight">image</strong> tag
  16. var outImage = "previewField";
  17. // what to display when the <strong class="highlight">image</strong> is not valid
  18. var defaultPic = "spacer.gif";
  19. /***** DO NOT EDIT BELOW *****/
  20. function preview(what){
  21. var source = what.value;
  22. var ext = source.substring(source.lastIndexOf(".") + 1, source.length).toLowerCase();
  23. for (var i = 0; i < fileTypes.length; i++) {
  24. if (fileTypes[i] == ext) {
  25. break;
  26. }
  27. }
  28. globalPic = new Image();
  29. if (i < fileTypes.length) {
  30.  
  31. //Obtenemos los datos de la imagen de firefox
  32. try {
  33. globalPic.src = what.files[0].getAsDataURL();
  34. }
  35. catch (err) {
  36. globalPic.src = source;
  37. }
  38. }
  39. else {
  40. globalPic.src = defaultPic;
  41. alert("ESTA NO ES UNA IMAGEN VALIDA por favor escoge una imagen de tipo:nn" + fileTypes.join(", "));
  42. }
  43. setTimeout("applyChanges()", 200);
  44. }
  45.  
  46. var globalPic;
  47. function applyChanges(){
  48. var field = document.getElementById(outImage);
  49. var x = parseInt(globalPic.width);
  50. var y = parseInt(globalPic.height);
  51. if (x > maxWidth) {
  52. y *= maxWidth / x;
  53. x = maxWidth;
  54. }
  55. if (y > maxHeight) {
  56. x *= maxHeight / y;
  57. y = maxHeight;
  58. }
  59. field.style.display = (x < 1 || y < 1) ? "none" : "";
  60. field.src = globalPic.src;
  61. field.width = x;
  62. field.height = y;
  63. }
  64.  
  65. // End -->
  66. </script>
  67. </head>
  68. <body>
  69. <p>Pre-veiw pic from your drive</p>
  70. <input type="file" id="picField" onchange="preview(this)">
  71. <img alt="Graphic will preview here" id="previewField" src="http://i14.photobucket.com/ssalbums/a345/Instar/eye_search_e0.gif">
  72. </body>
  73. </html>
Go to the top of the page
+Quote Post
Ciubas
post 9.07.2011, 15:09:52
Post #8





Grupa: Zarejestrowani
Postów: 40
Pomógł: 0
Dołączył: 14.09.2003
Skąd: K-ce

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


Na FF działa, na operze nie - ale to jest to o co mi chodziło - bardzo dziękuje za pomoc!

Teraz tylko to zmodyfikować pod siebie i czary będą realne biggrin.gif


Ten post edytował Ciubas 9.07.2011, 15:58:59
Go to the top of the page
+Quote Post
kamil4u
post 10.07.2011, 19:13:33
Post #9





Grupa: Zarejestrowani
Postów: 2 350
Pomógł: 512
Dołączył: 4.01.2009
Skąd: Wrocław / Świdnica

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


Zrobiłem najprostszy test:
Kod
<input type="file" onchange="alert(this.value)">


Kod ten wyświetla jedynie "część" ścieżki do pliki(FF - może starsze przeglądarki pokażą pełną ścieżkę), a dokładnie tylko jego nazwę - skoro tak jest to pewnie jest to związane z bezpieczeństwem( żeby nie było wiadomo, gdzie użytkownik trzyma pliki - moje domysły) stąd mój post.

Kod ~mortusa działa trochę inaczej(i tylko dla FF). Sam zobacz, że nie wyświetlana jest pełna ścieżka, a sam plik:
Kod
<input type="file" onchange="alert(this.files[0].getAsDataURL() );>


Stwierdziłem zatem, że skoro nie da się tego zrobić dla wszystkich przeglądarek to nie da się tego zrobić - zastosuj ajax + upload pliku(chyba nie musisz zapisywać obrazka na serwerze( w PHP dawno się nie bawiłem) - http://forum.webhelp.pl/php-i-bazy-danych/...on-t199853.html )

@Rid: Ty mówisz po prostu o
Kod
new Image
- moim zdaniem o czymś innym


--------------------
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 15.07.2025 - 13:06