Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Pobieranie informacji o pobranym pliku
Forum PHP.pl > Forum > Po stronie przeglądarki
JamalBIG
Witam

Mam tutaj fajny kod do pobierania plikow z wykorzystaniem iframe. Wszystko bylo by fajnie gdyby nie fakt ze nie mam zadnej informacji o pobranym pliku, po to aby moc ja gdzies zapisac, na glownej stronie. Wiecie moze w jaki sposob jakos 'wyciagnac' tą informacje (nazwe pliku)?

  1. <?php
  2. @$ftmp = $_FILES['file']['tmp_name'];
  3. @$oname = $_FILES['file']['name'];
  4. @$fname = $_FILES['file']['name'];
  5. @$fsize = $_FILES['file']['size'];
  6. @$ftype = $_FILES['file']['type'];
  7.  
  8. if(IsSet($ftmp)) {
  9.  
  10. define("_ALREADYEXIST", "<div id=\"error_div\"><b>Plik istnieje juz w naszej bazie!</b></div>");
  11. define("_FILETOOBIG", "<div id=\"error_div\"><b>Plik jest za duży. Powinien ważyć do");
  12. define("_FILETOOBIG2", "KB.</b></div>");
  13. define("_WRONGFORMAT", "<div id=\"error_div\"><b>Niepoprawny format pliku!</b></div>");
  14. define("_IMAGEADDED", "<b>Plik został dodany!</b>");
  15.  
  16. #Dopuszczalne formaty plików
  17. $limitedext = array(".gif",".jpg",".png",".jpeg");
  18. #Maksymalny rozmiar dodawanego pliku
  19. $sizebytes = "307200";
  20. $kilobytes = $sizebytes/1024;
  21. #URL folderu do którego pliki są pobierane
  22. $dl = "http://localhost/.../";
  23. #Absolutny folder do którego pliki są pobierane (z '/')
  24. $absolute_path = "/.../photos";
  25.  
  26. $ext = strrchr($fname,'.');
  27. if ($file != "") {
  28. if (file_exists("$absolute_path/$fname")) {
  29.  $error = _ALREADYEXIST;
  30.  } else {
  31.  if ($fsize > $sizebytes) {
  32.    $error = ""._FILETOOBIG." $kilobytes"._FILETOOBIG2."";
  33.    } else {
  34.    if (!in_array($ext,$limitedext)) {
  35.      $error = _WRONGFORMAT;
  36.      } else {
  37.        @copy($file, "$absolute_path/$fname");
  38.        $error = ""._IMAGEADDED."<br /><img width=\"80\" border=0 src=$dl/$fname>";
  39.        }        
  40.      }
  41.     }
  42.    }
  43. ?>
  44.  
  45. <html><head><script>
  46. var par = window.parent.document;
  47. var list = par.getElementById('list');
  48. var fileid = par.createElement('div');
  49. var inpid = par.createElement('input');
  50. var imgdiv = list.getElementsByTagName('div')[<?=(int)$_POST['imgnum']?>];
  51. var image = imgdiv.getElementsByTagName('img')[0];
  52.  
  53. imgdiv.removeChild(image);
  54. list.removeChild(imgdiv);
  55.  
  56. fileid.setAttribute('id', 'upfile<?=$file_id?>');
  57. fileid.innerHTML = '<?="$error"?>';
  58. inpid.type = 'hidden';
  59. inpid.name = 'filename[]';
  60. inpid.value = '<?=$file_id?>';
  61. list.appendChild(fileid);
  62. fileid.appendChild(inpid);
  63. </script></head>
  64. </html>
  65.  
  66. <?php
  67.    exit();
  68. }
  69. ?>
  70.  
  71. <html><head>
  72. <script language="javascript">
  73. function upload(){
  74. // hide old iframe
  75.    var par = window.parent.document;
  76.    var num = par.getElementsByTagName('iframe').length - 1;
  77.    var iframe = par.getElementsByTagName('iframe')[num];
  78.    iframe.className = 'hidden';
  79.  
  80.    // create new iframe
  81.    var new_iframe = par.createElement('iframe');
  82.    new_iframe.src = 'modules/Firm_folder/upload.php';
  83.    new_iframe.frameBorder = '0';
  84.    par.getElementById('iframe').appendChild(new_iframe);
  85.  
  86.    // add image progress
  87.    var list = par.getElementById('list');
  88.    var new_div = par.createElement('div');
  89.    var new_img = par.createElement('img');
  90.    new_img.src = 'indicator.gif';
  91.    new_img.className = 'load';
  92.    new_div.appendChild(new_img);
  93.    list.appendChild(new_div);
  94.  
  95.    // send
  96.    var imgnum = list.getElementsByTagName('div').length - 1;
  97.    document.iform.imgnum.value = imgnum;
  98.    document.iform.submit();
  99. }
  100. </script>
  101. <style>
  102. body {vertical-align:top;}
  103. </style>
  104. <head>
  105. <body topmargin="0" leftmargin="0" rightmargin="0" bottommargin="0">
  106. <form name="iform" action="" method="post" enctype="multipart/form-data">
  107. <input id="file" type="file" name="file" onchange="upload()" />
  108. <input type="hidden" name="imgnum" />
  109. </form>
  110. </html>


Kod na glownej stronie:

  1. <table><tr><td><div id='iframe'>
  2. <iframe src='upload.php' frameborder='' scrolling='0'></iframe>
  3. </div></td><td>
  4. <div align='left' id='list'></div>
  5. </td></tr></table>
EarthCitizen
Gdzie dokładnie chcesz tę informację zapisać/wyświetlić ? Nazwa pliku znajduje się w tablicy $_FILES['file']['name'];
JamalBIG
Chodzi mi o to zeby nazwa wyswietlila sie na stronie gdzie mam kod wywolujacy ramke czyli tam gdzie jest
  1. <table><tr><td><div id='iframe'>
  2. <iframe src='upload.php' frameborder='' scrolling='0'></iframe>
  3. </div></td><td>
  4. <div align='left' id='list'></div>
  5. </td></tr></table>


Myslalem ze bedzie sie wyswietlalo w descji div ale niestety tak nie jest... Wyswietlaja sie komunikaty ale w zrodle strony nic nie ma...
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.