PageRenderTime 65ms CodeModel.GetById 28ms RepoModel.GetById 1ms app.codeStats 0ms

/billedupload.php

https://github.com/jeppevb/NKC
PHP | 190 lines | 157 code | 23 blank | 10 comment | 13 complexity | 7f90200e5989e8d77259afcfb8d58e29 MD5 | raw file
  1. <?php include_once 'includes/auth.php'; ?>
  2. <?php include_once 'includes/dbcrudconfig.php'; ?>
  3. <?php require_once 'includes/dbqueryconfig.php'; ?>
  4. <?php include_once 'includes/header.php';?>
  5. <?php
  6. function printGalleries(){
  7. global $qcon;
  8. $result = mysql_query('SELECT id, name FROM galleries', $qcon);
  9. while($row = mysql_fetch_array($result))
  10. {
  11. echo '<option value="' . $row['id'] . '">' . $row['name'] . '</option>' . PHP_EOL;
  12. }
  13. }
  14. if (isset($_GET['action'])) {
  15. switch ($_GET['action']){
  16. case "upload":
  17. if (isset($_FILES["file"]) && isset($_POST["gallery"])) {
  18. global $qcon;
  19. $result = mysql_query('SELECT foldername FROM galleries where id = ' . mysql_real_escape_string($_POST['gallery']) , $qcon);
  20. $row = mysql_fetch_array($result);
  21. $galleryfolder = $row['foldername'];
  22. foreach ($_FILES["file"]["error"] as $key => $error) {
  23. if ($error == UPLOAD_ERR_OK) {
  24. $tmp_name = $_FILES["file"]["tmp_name"][$key];
  25. if (isset($_POST["newname"]) && $_POST["newname"][$key] != "")
  26. $name = mysql_real_escape_string($_POST["newname"][$key]) . '.' . end(explode(".", $_FILES["file"]["name"][$key]));
  27. else
  28. $name = mysql_real_escape_string($_FILES["file"]["name"][$key]);
  29. if (!file_exists("billeder/" . $galleryfolder . "/" . $name)) {
  30. copy($tmp_name, "billeder/" . $galleryfolder . "/" . $name);
  31. list($width_orig, $height_orig) = getimagesize("billeder/" . $galleryfolder . "/" . $name);
  32. $src = "billeder/" . $galleryfolder . "/" . $name;
  33. switch(strtolower(end(explode(".", $name)))){
  34. case 'bmp': $img = imagecreatefromwbmp($src); break;
  35. case 'gif': $img = imagecreatefromgif($src); break;
  36. case 'jpg': $img = imagecreatefromjpeg($src); break;
  37. case 'png': $img = imagecreatefrompng($src); break;
  38. default : return "Unsupported picture type!";
  39. }
  40. $thumbnail = imagecreatetruecolor(50, floor((50/$width_orig)*$height_orig));
  41. $frontnail = imagecreatetruecolor(272, floor((272/$width_orig)*$height_orig));
  42. imagecopyresampled($thumbnail, $img, 0, 0, 0, 0, 50, floor(( 50/$width_orig)*$height_orig), $width_orig, $height_orig);
  43. imagecopyresampled($frontnail, $img, 0, 0, 0, 0, 272, floor((272/$width_orig)*$height_orig), $width_orig, $height_orig);
  44. switch(strtolower(end(explode(".", $name)))){
  45. case 'bmp': imagewbmp($thumbnail, "billeder/" . $galleryfolder . "/thumbnails/" . $name);
  46. imagewbmp($frontnail, "billeder/" . $galleryfolder . "/frontnails/" . $name);
  47. break;
  48. case 'gif': imagegif($thumbnail, "billeder/" . $galleryfolder . "/thumbnails/" . $name);
  49. imagegif($frontnail, "billeder/" . $galleryfolder . "/frontnails/" . $name);
  50. break;
  51. case 'jpg': imagejpeg($thumbnail, "billeder/" . $galleryfolder . "/thumbnails/" . $name);
  52. imagejpeg($frontnail, "billeder/" . $galleryfolder . "/frontnails/" . $name);
  53. break;
  54. case 'png': imagepng($thumbnail, "billeder/" . $galleryfolder . "/thumbnails/" . $name);
  55. imagepng($frontnail, "billeder/" . $galleryfolder . "/frontnails/" . $name);
  56. break;
  57. default : return "Unsupported picture type!";
  58. }
  59. imagedestroy($img);
  60. imagedestroy($thumbnail);
  61. imagedestroy($frontnail);
  62. }
  63. mysql_query('insert into images (gallery_id, filename) values (\'' . mysql_real_escape_string($_POST['gallery']) . '\', \'' . $name . '\')', $inscon);
  64. }
  65. else
  66. {
  67. switch ($error) {
  68. case UPLOAD_ERR_INI_SIZE:
  69. $_SESSION['notification'] = 'Filen var for stor. Max er 2 megabyte.';
  70. header('location: /notifikation');
  71. break;
  72. }
  73. }
  74. }
  75. }
  76. break;
  77. case "gallery":
  78. mysql_query('insert into galleries (foldername, name, created) values (\'' . mysql_real_escape_string($_POST['foldername']) . '\', \'' . mysql_real_escape_string($_POST['galleryname']) . '\', sysdate())', $inscon);
  79. echo mysql_error($inscon);
  80. mkdir('billeder/'. addslashes($_POST['foldername']));
  81. mkdir('billeder/'. addslashes($_POST['foldername'] . '/thumbnails'));
  82. mkdir('billeder/'. addslashes($_POST['foldername'] . '/frontnails'));
  83. break;
  84. }
  85. }
  86. ?>
  87. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  88. <html xmlns="http://www.w3.org/1999/xhtml">
  89. <head>
  90. <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
  91. <link href="/stylesheets/stylesheet.css" media="screen" rel="stylesheet"
  92. type="text/css" />
  93. <link rel="icon" type="image/icon" href="/favicon.ico" />
  94. <title>Upload Billeder - Nordjysk Kampsportscenter</title>
  95. <script type="text/javascript">
  96. function validateUpl()
  97. {
  98. return true;
  99. }
  100. function validateGal()
  101. {
  102. var gallerypattern=/^[a-z0-9æøå\ ]+$/i;
  103. var folderpattern=/^[a-z0-9]+$/i;
  104. if(!gallerypattern.test(document.getElementById("galleryname").value)){
  105. alert("du har ikke skrevet noget fornuftigt i gallerinavn");
  106. return false;
  107. }else if(!folderpattern.test(document.getElementById("foldername").value)){
  108. alert("du har skrevet noget juks i mappenavn");
  109. return false;
  110. }else
  111. return true;
  112. }
  113. function addLine()
  114. {
  115. extraRow = document.createElement("tr");
  116. extraRow.innerHTML = "<td><input type=\"file\" name=\"file[]\" accept=\"image/*\" /></td><td><input type=\"text\" name=\"newname[]\" /></td>";
  117. document.getElementById("filestbl").appendChild(extraRow);
  118. }
  119. </script>
  120. </head>
  121. <body>
  122. <div class="thestyle" id="top">
  123. <?php show_topbanner(); ?>
  124. </div>
  125. <div id="menu" class="thestyle">
  126. <!-- Her begynder menuen -->
  127. <?php show_menu(); ?>
  128. <!-- Her ender menuen -->
  129. </div>
  130. <div class="thestyle" id="whitebox">
  131. <div id="content">
  132. <a href="/logout">Log ud</a><br />
  133. <form onsubmit="return validateGal();" action="/upload_billede/gallery" method="post" >
  134. <table>
  135. <tr><th>mappenavn<span class="legend"><img src="/billeder/info.gif" />
  136. <div class="legend">Skal være et navn af tegnene a til z og 0 til 9 uden mellemrum.</div></span></th><th>gallerinavn<span class="legend"><img src="/billeder/info.gif" />
  137. <div class="legend">Kan være et navn af tegnene a til å og 0 til 9 med mellemrum.</div></span></th></tr>
  138. <tr><td><input type="text" id="foldername" name="foldername" /></td><td><input type="text" id="galleryname" name="galleryname"/></td></tr>
  139. </table>
  140. <input type="submit" name="submit" value="Opret galleri" />
  141. </form>
  142. <br />
  143. <hr />
  144. <br />
  145. <form onsubmit="return validateUpl();" action="/upload_billede/upload" method="post" enctype="multipart/form-data" >
  146. <select name="gallery">
  147. <?php printGalleries(); ?>
  148. </select><span class="legend"><img src="/billeder/info.gif" />
  149. <div class="legend">Det galleri du vil uploade nedenstående billede(r) til.</div></span>
  150. <br /><br />
  151. <input type="button" value="Flere linier?" onclick="addLine();" /><span class="legend"><img src="/billeder/info.gif" />
  152. <div class="legend">Tilføj inputfelter herunder du kan uploade flere billeder ad gangen.</div></span>
  153. <table>
  154. <tbody id="filestbl">
  155. <tr><th>billede</th><th>omdøb til<span class="legend"><img src="/billeder/info.gif" />
  156. <div class="legend">Hvis dette felt er sat bliver billedet omdøbt til dette navn. Undlad extension. Dvs. du skal ikke skrive mit_nye_billednavn.jpg, men bare mit_nye_billednavn</div></span></th></tr>
  157. <tr><td><input type="file" name="file[]" accept="image/*" /></td><td><input type="text" name="newname[]" /></td></tr>
  158. </tbody>
  159. </table>
  160. <input type="submit" name="submit" value="Upload filer" />
  161. </form>
  162. </div>
  163. </div>
  164. <div id="footer" class="thestyle"></div>
  165. </body>
  166. </html>