/upload.php

https://gitlab.com/vado/scadi · PHP · 320 lines · 265 code · 39 blank · 16 comment · 61 complexity · 19d6dbb372f29fb3e7c52758a288e283 MD5 · raw file

  1. <?php
  2. function recepcioImatgeProducte($db,$idProducte)
  3. {
  4. global $mExtensionsPermeses,$mParametres,$thumbCode,$mPars;
  5. $imageDimensions=array();
  6. $thumbImageNamePath='';
  7. $imageResizedWidth=0;
  8. $imageResizedHeight=0;
  9. $missatgeError='';
  10. $newThumbWidth=0;
  11. $newThumbHeight=0;
  12. $cDir=getcwd();
  13. if($mPars['selLlistaId']==0)
  14. {
  15. if(!@chdir('productes'))
  16. {
  17. mkdir('productes');
  18. chdir('productes');
  19. }
  20. if(!@chdir($idProducte))
  21. {
  22. mkdir($idProducte);
  23. chdir($idProducte);
  24. }
  25. $dir='productes/'.$idProducte;
  26. }
  27. else
  28. {
  29. if(!@chdir('llistes'))
  30. {
  31. mkdir('llistes');
  32. chdir('llistes');
  33. }
  34. if(!@chdir($mPars['selLlistaId']))
  35. {
  36. mkdir($mPars['selLlistaId']);
  37. chdir($mPars['selLlistaId']);
  38. }
  39. if(!@chdir('productes'))
  40. {
  41. mkdir('productes');
  42. chdir('productes');
  43. }
  44. if(!@chdir($idProducte))
  45. {
  46. mkdir($idProducte);
  47. chdir($idProducte);
  48. }
  49. $dir='llistes/'.$mPars['selLlistaId'].'/productes/'.$idProducte;
  50. }
  51. chdir($cDir);
  52. $mScanDir=scandir($dir);
  53. if($_FILES['i_imatge']['name']!='')
  54. {
  55. if (is_uploaded_file($_FILES['i_imatge']['tmp_name']))
  56. {
  57. //mirar si l'extensio és correcta:
  58. $size=@pathinfo($_FILES['i_imatge']['name']);
  59. if(in_array(@strtolower($size['extension']),$mExtensionsPermeses))
  60. {
  61. $nomImatge=$idProducte.'.'.$size['extension'];
  62. //if(!@chdir('productes/'.$idProducte)){mkdir('productes/'.$idProducte);}else{chdir($cDir);}
  63. if(!copy($_FILES['i_imatge']['tmp_name'],$dir."/".$nomImatge))
  64. {
  65. $missatgeError.="<p class='pAlertaNo'> Atenció: Error en copiar la imatge al directori.</p>";
  66. }
  67. else
  68. {
  69. //esborrar imatges velles:
  70. while(list($key,$file)=each($mScanDir))
  71. {
  72. if($file!=$nomImatge && $file!='.' && $file!='..')
  73. {
  74. unlink($dir."/".$file);
  75. }
  76. }
  77. reset($mScanDir);
  78. $imageDimensions=getimagesize($dir."/".$nomImatge);
  79. //resize if needed:
  80. $imageResizedWidth=$imageDimensions[0];
  81. $imageResizedHeight=$imageDimensions[1];
  82. if($imageDimensions[0]>$mParametres['patternImageMaxWidth']['valor'])
  83. {
  84. $imageResizedWidth=floor($mParametres['patternImageMaxWidth']['valor']);
  85. $imageResizedHeight=floor($imageResizedWidth*($imageDimensions[1]/$imageDimensions[0]));
  86. $im=getImage($dir,$nomImatge,$size['extension'],$idProducte);
  87. $imDest=@imagecreatetruecolor($imageResizedWidth,$imageResizedHeight);
  88. @imagecopyresampled($imDest,$im,0,0,0,0,$imageResizedWidth,$imageResizedHeight,$imageDimensions[0],$imageDimensions[1]);
  89. if(@strtolower($size['extension'])=='gif'){@imagegif($imDest,$dir."/".$nomImatge);}
  90. else if(@strtolower($size['extension'])=='png'){@imagepng($imDest,$dir."/".$nomImatge);}
  91. else if(@strtolower($size['extension'])=='jpg' || @strtolower($size['extension'])=='jpeg'){@imagejpeg($imDest,$dir."/".$nomImatge);}
  92. @imagedestroy($im);
  93. @imagedestroy($imDest);
  94. }
  95. //generate thumbnail
  96. $newThumbWidth=$imageResizedWidth;
  97. $newThumbHeight=$imageResizedHeight;
  98. if($imageResizedWidth>$mParametres['thumbsWidth']['valor'])
  99. {
  100. $newThumbWidth=$mParametres['thumbsWidth']['valor'];
  101. $newThumbHeight=$newThumbWidth*($imageDimensions[1]/$imageDimensions[0]);
  102. }
  103. if($newThumbHeight>$mParametres['thumbsHeight']['valor'])
  104. {
  105. $newThumbHeight=$mParametres['thumbsHeight']['valor'];
  106. $newThumbWidth=$newThumbHeight*($imageDimensions[0]/$imageDimensions[1]);
  107. }
  108. $thumbImageNamePath=$dir."/".$thumbCode.'_'.$nomImatge;
  109. $im=@getImage($dir,$nomImatge,$size['extension'],$idProducte);
  110. $imDest=@imagecreatetruecolor($newThumbWidth,$newThumbHeight);
  111. @imagecopyresampled($imDest,$im,0,0,0,0,$newThumbWidth,$newThumbHeight,$imageResizedWidth,$imageResizedHeight);
  112. if(@strtolower($size['extension'])=='gif'){@imagegif($imDest,$thumbImageNamePath);}
  113. else if(@strtolower($size['extension'])=='png'){@imagepng($imDest,$thumbImageNamePath);}
  114. else if(@strtolower($size['extension'])=='jpg' || @strtolower($size['extension'])=='jpeg'){@imagejpeg($imDest,$thumbImageNamePath);}
  115. @imagedestroy($im);
  116. @imagedestroy($imDest);
  117. //guardar path imatge a bbdd
  118. //echo "<br>update ".$mPars['taulaProductes']." set imatge='".$nomImatge."' where id='".$idProducte."' AND llista_id='".$mPars['selLlistaId']."'";
  119. if(!$result=mysql_query("update ".$mPars['taulaProductes']." set imatge='".$nomImatge."' where id='".$idProducte."' AND llista_id='".$mPars['selLlistaId']."'",$db))
  120. {
  121. //echo "<br> 136 upload.php ".mysql_errno() . ": " . mysql_error(). "\n";
  122. $missatgeError.="<p class='pAlertaNo'> Atenció: No s'ha pogut guardar la imatge a la fitxa del producte</p>";
  123. return false;
  124. }
  125. }
  126. }
  127. else
  128. {
  129. $missatgeError.="<p class='pAlertaNo'> Atenció: El tipus de fitxer ".$size['extension']." no està permès (tipus permesos: gif,jpg,png).</p>";
  130. }
  131. }
  132. else
  133. {
  134. $missatgeError.="<p class='pAlertaNo'> Atenció: Error en enviar el fitxer al servidor.</p>";
  135. }
  136. $thumbImageNamePath='';
  137. $imageResizedWidth=0;
  138. $imageResizedHeight=0;
  139. $newThumbWidth=0;
  140. $newThumbHeight=0;
  141. }
  142. if(strlen($missatgeError)==0)
  143. {
  144. $missatgeError.="<p class='pAlertaOk'> Ok: La imatge s'ha guardat correctament.</p>";
  145. }
  146. return $missatgeError;
  147. }
  148. //------------------------------------------------------------------------------
  149. function recepcioImatgeVehicle($db,$idVehicle)
  150. {
  151. global $mExtensionsPermeses,$mParametres,$thumbCode,$mPars;
  152. $imageDimensions=array();
  153. $thumbImageNamePath='';
  154. $imageResizedWidth=0;
  155. $imageResizedHeight=0;
  156. $missatgeError='';
  157. $newThumbWidth=0;
  158. $newThumbHeight=0;
  159. $cDir=getcwd();
  160. $dir='vehicles';
  161. if(!@chdir('vehicles'))
  162. {
  163. @mkdir('vehicles');
  164. }
  165. else
  166. {
  167. @chdir($cDir);
  168. }
  169. $mScanDir=@scandir('vehicles/'.$idVehicle);
  170. if($_FILES['i_imatge']['name']!='')
  171. {
  172. if (is_uploaded_file($_FILES['i_imatge']['tmp_name']))
  173. {
  174. //mirar si l'extensio és correcta:
  175. $size=@pathinfo($_FILES['i_imatge']['name']);
  176. if(in_array(@strtolower($size['extension']),$mExtensionsPermeses))
  177. {
  178. $nomImatge=$_FILES['i_imatge']['name'];
  179. if(!@chdir('vehicles/'.$idVehicle)){mkdir('vehicles/'.$idVehicle);}else{chdir($cDir);}
  180. if(!copy($_FILES['i_imatge']['tmp_name'],'vehicles/'.$idVehicle."/".$nomImatge))
  181. {
  182. $missatgeError.="<p class='pAlertaNo'> Atenció: Error en copiar la imatge al directori.</p>";
  183. }
  184. else
  185. {
  186. //esborrar imatges velles:
  187. while(list($key,$file)=@each($mScanDir))
  188. {
  189. if($file!=$nomImatge && $file!='.' && $file!='..')
  190. {
  191. @unlink('vehicles/'.$idVehicle."/".$file);
  192. }
  193. }
  194. @reset($mScanDir);
  195. $imageDimensions=getimagesize('vehicles/'.$idVehicle."/".$nomImatge);
  196. //resize if needed:
  197. $imageResizedWidth=$imageDimensions[0];
  198. $imageResizedHeight=$imageDimensions[1];
  199. if($imageDimensions[0]>$mParametres['patternImageMaxWidth']['valor'])
  200. {
  201. $imageResizedWidth=floor($mParametres['patternImageMaxWidth']['valor']);
  202. $imageResizedHeight=floor($imageResizedWidth*($imageDimensions[1]/$imageDimensions[0]));
  203. $im=getImage($dir,$nomImatge,$size['extension'],$idVehicle);
  204. $imDest=@imagecreatetruecolor($imageResizedWidth,$imageResizedHeight);
  205. @imagecopyresampled($imDest,$im,0,0,0,0,$imageResizedWidth,$imageResizedHeight,$imageDimensions[0],$imageDimensions[1]);
  206. if(@strtolower($size['extension'])=='gif'){@imagegif($imDest,'vehicles/'.$idVehicle."/".$nomImatge);}
  207. else if(@strtolower($size['extension'])=='png'){@imagepng($imDest,'vehicles/'.$idVehicle."/".$nomImatge);}
  208. else if(@strtolower($size['extension'])=='jpg' || @strtolower($size['extension'])=='jpeg'){@imagejpeg($imDest,'vehicles/'.$idVehicle."/".$nomImatge);}
  209. @imagedestroy($im);
  210. @imagedestroy($imDest);
  211. }
  212. //generate thumbnail
  213. $newThumbWidth=$imageResizedWidth;
  214. $newThumbHeight=$imageResizedHeight;
  215. if($imageResizedWidth>$mParametres['thumbsWidth']['valor'])
  216. {
  217. $newThumbWidth=$mParametres['thumbsWidth']['valor'];
  218. $newThumbHeight=$newThumbWidth*($imageDimensions[1]/$imageDimensions[0]);
  219. }
  220. if($newThumbHeight>$mParametres['thumbsHeight']['valor'])
  221. {
  222. $newThumbHeight=$mParametres['thumbsHeight']['valor'];
  223. $newThumbWidth=$newThumbHeight*($imageDimensions[0]/$imageDimensions[1]);
  224. }
  225. $thumbImageNamePath='vehicles/'.$idVehicle."/".$thumbCode.'_'.$nomImatge;
  226. $im=@getImage($dir,$nomImatge,$size['extension'],$idVehicle);
  227. $imDest=@imagecreatetruecolor($newThumbWidth,$newThumbHeight);
  228. @imagecopyresampled($imDest,$im,0,0,0,0,$newThumbWidth,$newThumbHeight,$imageResizedWidth,$imageResizedHeight);
  229. if(@strtolower($size['extension'])=='gif'){@imagegif($imDest,$thumbImageNamePath);}
  230. else if(@strtolower($size['extension'])=='png'){@imagepng($imDest,$thumbImageNamePath);}
  231. else if(@strtolower($size['extension'])=='jpg' || @strtolower($size['extension'])=='jpeg'){@imagejpeg($imDest,$thumbImageNamePath);}
  232. @imagedestroy($im);
  233. @imagedestroy($imDest);
  234. //guardar path imatge a bbdd
  235. if(!$result=mysql_query("update vehicles set imatge='".$nomImatge."' where id='".$idVehicle."'",$db))
  236. {
  237. //echo "<br> 77. upload.php ".mysql_errno() . ": " . mysql_error(). "\n";
  238. $missatgeError.="<p class='pAlertaNo'> Atenció: No s'ha pogut guardar la imatge a la fitxa del vehicle</p>";
  239. return false;
  240. }
  241. }
  242. }
  243. else
  244. {
  245. $missatgeError.="<p class='pAlertaNo'> Atenció: El tipus de fitxer ".$size['extension']." no està permès (tipus permesos: gif,jpg,png).</p>";
  246. }
  247. }
  248. else
  249. {
  250. $missatgeError.="<p class='pAlertaNo'> Atenció: Error en enviar el fitxer al servidor.</p>";
  251. }
  252. $thumbImageNamePath='';
  253. $imageResizedWidth=0;
  254. $imageResizedHeight=0;
  255. $newThumbWidth=0;
  256. $newThumbHeight=0;
  257. }
  258. if(strlen($missatgeError)==0)
  259. {
  260. $missatgeError.="<p class='pAlertaOk'> Ok: La imatge s'ha guardat correctament.</p>";
  261. }
  262. return $missatgeError;
  263. }
  264. ////////////////////////////////////////////////////////////////////////////////
  265. function getImage($dir,$image,$extension,$idProducte)
  266. {
  267. $im=0;
  268. if(strtolower($extension)=='gif'){$im=imagecreatefromgif($dir.'/'.$image);}
  269. else if(strtolower($extension)=='jpg' || strtolower($extension)=='jpeg'){$im=imagecreatefromjpeg($dir.'/'.$image);}
  270. else if(strtolower($extension)=='png'){$im=imagecreatefrompng($dir.'/'.$image);}
  271. return $im;
  272. }
  273. ?>