PageRenderTime 42ms CodeModel.GetById 16ms RepoModel.GetById 0ms app.codeStats 0ms

/app/code/community/ZetaPrints/WebToPrint/controllers/UploadController.php

http://magento-w2p.googlecode.com/
PHP | 116 lines | 85 code | 29 blank | 2 comment | 19 complexity | d54ce2272adff428fa8d642fba0da061 MD5 | raw file
  1. <?php
  2. class ZetaPrints_WebToPrint_UploadController
  3. extends Mage_Core_Controller_Front_Action
  4. implements ZetaPrints_Api {
  5. public function indexAction () {
  6. $uploaded_file = $_FILES['customer-image'];
  7. if ($uploaded_file['error'] != UPLOAD_ERR_OK) {
  8. echo 'Error';
  9. return;
  10. }
  11. $media_config = Mage::getModel('catalog/product_media_config');
  12. $extension = substr($uploaded_file['name'], strrpos($uploaded_file['name'], '.'));
  13. $file_name = zetaprints_generate_guid() . strtolower($extension);
  14. $zp_dir = (string)Mage::getConfig()->getNode('default/zetaprints/webtoprint/uploading/dir');
  15. $file_path = $media_config->getTmpMediaPath("{$zp_dir}/{$file_name}");
  16. $result = move_uploaded_file($uploaded_file['tmp_name'], $file_path);
  17. if (!$result) {
  18. echo 'Error';
  19. return;
  20. }
  21. $helper = Mage::helper('webtoprint');
  22. $user_credentials = $helper->get_zetaprints_credentials();
  23. //FIXME fast n dirty image upload fix
  24. $img_url = $media_config->getTmpMediaUrl("{$zp_dir}/{$file_name}");
  25. if(substr($img_url, 0, 1) == '/')
  26. $img_url = 'http://'.$_SERVER['SERVER_NAME'].$img_url;
  27. else
  28. //ZetaPrints doesn't accept URLs with HTTPS scheme
  29. $img_url = str_replace('https://', 'http://', $img_url);
  30. $params = array(
  31. 'ID' => $user_credentials['id'],
  32. 'Hash' => zetaprints_generate_user_password_hash($user_credentials['password']),
  33. 'URL' => $img_url);
  34. $url = Mage::getStoreConfig('webtoprint/settings/url');
  35. $key = Mage::getStoreConfig('webtoprint/settings/key');
  36. $image = zetaprints_download_customer_image($url, $key, $params);
  37. unlink($file_path);
  38. if (is_array($image) && count($image) == 1)
  39. $image = $image[0];
  40. else {
  41. echo 'Error';
  42. return;
  43. }
  44. $result = array('guid' => $image['guid']);
  45. if ($image['mime'] === 'image/jpeg' || $image['mime'] === 'image/jpg')
  46. $result['thumbnail'] = $helper
  47. ->get_photo_thumbnail_url($image['thumbnail'],
  48. 0,
  49. 100);
  50. else
  51. $result['thumbnail'] = $helper
  52. ->get_photo_thumbnail_url($image['thumbnail']);
  53. echo json_encode($result);
  54. }
  55. public function byUrlAction () {
  56. $request = $this->getRequest();
  57. if (!($request->has('url') && $url = $request->get('url')))
  58. return;
  59. $helper = Mage::helper('webtoprint');
  60. $credentials = $helper->get_zetaprints_credentials();
  61. $params = array(
  62. 'ID' => $credentials['id'],
  63. 'Hash'
  64. => zetaprints_generate_user_password_hash($credentials['password']),
  65. 'URL' => $url
  66. );
  67. $url = Mage::getStoreConfig('webtoprint/settings/url');
  68. $key = Mage::getStoreConfig('webtoprint/settings/key');
  69. $image = zetaprints_download_customer_image($url, $key, $params);
  70. if (is_array($image) && count($image) == 1)
  71. $image = $image[0];
  72. else {
  73. echo 'Error';
  74. return;
  75. }
  76. if ($image['mime'] === 'image/jpeg' || $image['mime'] === 'image/jpg')
  77. $image['thumbnail_url'] = $helper
  78. ->get_photo_thumbnail_url($image['thumbnail'],
  79. 0,
  80. 100);
  81. else
  82. $image['thumbnail_url'] = $helper
  83. ->get_photo_thumbnail_url($image['thumbnail']);
  84. echo json_encode($image);
  85. }
  86. }
  87. ?>