Forum » Programiranje » [PHP]Zajem slike iz direktorija
[PHP]Zajem slike iz direktorija
KernelPanic ::
Spostovani!
V bazi imam tabelo, ki opisuje kategorije izdelkov. V prestashop-u ima vsaka kategorija (lahko, odvisno od uporabnika) svojo sliko, ki jih shranjuje na server v direktorij /httpdocs/img/c. Jaz iz te tabele pobiram imena kategorij, nato nastavim pot in v array probam spravit sliko. Nato vse skupaj zapakiram v json objekt in ga posljem klientu, da ga prikaze. Vendar dobim od php skripte sledece warninge in errorje:
V bazi imam tabelo, ki opisuje kategorije izdelkov. V prestashop-u ima vsaka kategorija (lahko, odvisno od uporabnika) svojo sliko, ki jih shranjuje na server v direktorij /httpdocs/img/c. Jaz iz te tabele pobiram imena kategorij, nato nastavim pot in v array probam spravit sliko. Nato vse skupaj zapakiram v json objekt in ga posljem klientu, da ga prikaze. Vendar dobim od php skripte sledece warninge in errorje:
"Warning: file_get_contents(/httpdocs/img/c/199-large.jpg) 'function.file-get-contents'function.file-get-contents: failed to open stream: No such file or directory in /var/www/moja-domena.com/php/getCategories.php on line 54. Tukaj je pa omenjena php skriptka:
[{"name":"Ostale teko?ine","path":"\/httpdocs\/img\/c\/16-large.jpg","image":null},{"name":"KATEGORIJA1","path":"\/httpdocs\/img\/c\/74-large.jpg","image":null},{"name":"KATEOGRIJA2","path":"\/httpdocs\/img\/c\/75-large.jpg","image":null},{"name":"KATEGORIJA3 KATEGORIJA4","path":"\/httpdocs\/img\/c\/87-large.jpg","image":null},{"name":"KATEGORIJA5","path":"\/httpdocs\/img\/c\/159-large.jpg","image":null},{"name":"KATEGORIJA6","path":"\/httpdocs\/img\/c\/199-large.jpg","image":false}]"
<?php session_start(); if($_SERVER["REQUEST_METHOD"]=="POST") { $hostname_localhost ="localhost"; $database_localhost ="oljedirekt"; $username_localhost ="oljedirekt"; $password_localhost ="oljedirekt"; $path_to_categories_images="/httpdocs/img/c/"; $localhost=mysql_connect($hostname_localhost, $username_localhost, $password_localhost) or die(mysql_error()); mysql_select_db($database_localhost) or die(mysql_error()); $query_categories_id_numbers=mysql_query("SELECT id_category FROM ps_category WHERE id_parent=1 AND active=1"); // echo mysql_error(); // debug code $number_of_categories=mysql_num_rows($query_categories_id_numbers); if($number_of_categories>0) { // CATEGORIES NAMES FETCH $categories_id_numbers=""; while($category_id_number=mysql_fetch_assoc($query_categories_id_numbers)) { $categories_id_numbers.=$category_id_number['id_category'].","; } // while $categories_id_numbers = substr($categories_id_numbers, 0, strlen($categories_id_numbers)-1); // echo $categories_id_numbers; // debug code $query_categories_names=mysql_query("SELECT id_category,name FROM ps_category_lang WHERE id_category IN ($categories_id_numbers) AND id_lang=1"); // print_r($query_categories_names); // debug code // echo mysql_error(); // debug code $number_of_categories_names=mysql_num_rows($query_categories_names); if($number_of_categories_names>0) { while($categories=mysql_fetch_assoc($query_categories_names)) { $path_to_image=$path_to_categories_images.$categories['id_category']."-large.jpg"; $image_content=file_get_contents($path_to_image); $userdata[]=array("name" => $categories['name'], "path" => $path_to_image, "image" => $image_content); } // while print(json_encode($userdata)); } // if // END OF CATEGORIES NAMES FETCH // CATEGORIES IMAGES FETCH // END OF CATEGORIES IMAGES FETCH } else { } // if } // if ?>Od kod se mi prikradejo backslashi? Po moje zaradi teh backslashov ne najde poti do slik. Pravice na nivoju filesystem-a sem nastavil na 777 (testno).
- spremenil: KernelPanic ()
KernelPanic ::
Poizkusi z stripslashes()Ahaaaaaa, takoj probam, samo se vedno mi ni jasno, od kod se slashi pojavijo!? Nisem ravno vesca PHPja (se).
Sment, isti rezultat, ne pomaga!
Zgodovina sprememb…
- spremenil: KernelPanic ()
KernelPanic ::
V bazi (tabeli) sploh ni fielda, ki bi dal pot do slike na disku, ampak jo prestashop zgenerira z eno skripto. Jaz ne uporabljam prestashop skript, ceprav so na serverju, ampak pisem svoje in zgornja php skripta se izvede, ko bi klient rad dobil seznam kategorij izdelkov. Kot vidis, mi imena kategorij lepo pobere, samo se tale pot do slik me heca ...
KernelPanic ::
Ok, smo porihtali, zgleda, da se sedaj image prenese do Android aplikacije, vendar imam spet problem. V spodnji kodi:
private boolean getMerhcandiseCategories() throws Exception { InputStream is=null; String result=null; boolean bOperationSuccess=false; try { this.setDataResponse(this.dataClient().execute(this.dataPost())); this.setDataEntity(this.dataResponse().getEntity()); is=this.dataEntity().getContent(); BufferedReader reader=new BufferedReader(new InputStreamReader(is, ("UTF-8"))); StringBuilder sb=new StringBuilder(); while((result=reader.readLine())!=null) { sb.append(result)/*.append("\n")*/; } // while result=sb.toString(); if(!result.isEmpty()) { JSONArray jsonUserdata=new JSONArray(result); this.setMerchandiseCategories(new CItemMerchandiseCategory[jsonUserdata.length()]); for(int iIndex=0; iIndex<jsonUserdata.length(); iIndex++) { Bitmap bmpCategoryImage=null; try { Object jsonImage=jsonUserdata.getJSONObject(iIndex).get("image"); byte[] rawImage=jsonImage.toString().getBytes(); bmpCategoryImage=BitmapFactory.decodeByteArray(rawImage, 0, iIndex); } catch(Exception ex) { bmpCategoryImage=null; String strClassName=ex.getClass().getName().toString(); String strMessage=ex.getMessage().toString(); Log.wtf(CDatabaseManager.m_strLogTag, strClassName+":"+ strMessage); ex.printStackTrace(); } String strCategoryName=jsonUserdata.getJSONObject(iIndex).getString("name"); this.merchandiseCategories()[iIndex]=new CItemMerchandiseCategory(bmpCategoryImage, strCategoryName); } // for bOperationSuccess=true; } else { bOperationSuccess=false; throw new Exception(CDatabaseManager.ERROR_NO_MERCHANDISE_CATEGORIES_FOUND); } // if } catch(Exception ex) { bOperationSuccess=false; String strClassName=ex.getClass().getName().toString(); String strMessage=ex.getMessage().toString(); Log.wtf(CDatabaseManager.m_strLogTag, strClassName+":"+ strMessage); } // try-catch return bOperationSuccess; } // getMerhcandiseCategoriesse mi zatakne v vrstici, kjer bi rad kreiral array json objektov. Torej, ta vrstice mi vrze exception. Zakaj??
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | [Java]Listanje slikovnih datotek v izbranem direktorijuOddelek: Programiranje | 1142 (977) | illion |
» | [c#] savefiledialog, en sfd a več datotekOddelek: Programiranje | 754 (682) | darkkk |
» | [c#] shrani text, tabele, slikeOddelek: Programiranje | 1524 (1130) | klemen93 |
» | [android] vstavljanje slikeOddelek: Programiranje | 1247 (1144) | messi |
» | [PHP]Zajem podatkov iz bazeOddelek: Programiranje | 4064 (3701) | cobrica |