📄 fileuploadbean.java
字号:
ee.printStackTrace(); } } else { PetstoreUtil.getLogger().log(Level.INFO, "A \"proxyHost\" and \"proxyPort\" isn't set as a web.xml context-param. A proxy server may be necessary to reach the open internet."); } // use component to get points based on location (this uses Yahoo's map service String totAddr=addressx.toString(); double latitude=0; double longitude=0; if(totAddr.length() > 0) { try { GeoPoint points[]=geoCoder.geoCode(totAddr); if ((points == null) || (points.length < 1)) { PetstoreUtil.getLogger().log(Level.INFO, "No addresses for location - " + totAddr); } else if(points.length > 1) { PetstoreUtil.getLogger().log(Level.INFO, "Matched " + points.length + " locations, taking the first one"); } // grab first address in more that one came back if(points != null && points.length > 0) { // set values to used for map location latitude = points[0].getLatitude(); longitude = points[0].getLongitude(); } } catch (Exception ee) { PetstoreUtil.getLogger().log(Level.WARNING, "geocoder.lookup.exception", ee); } } BigDecimal pricex; try { pricex=new BigDecimal(price).setScale(2, BigDecimal.ROUND_HALF_UP); } catch (NumberFormatException nf) { pricex=BigDecimal.valueOf(-1); PetstoreUtil.getLogger().log(Level.INFO, "Price isn't in a proper number - " + price); } Address addr = new Address(street1,"",city,state,zip, latitude,longitude); SellerContactInfo contactInfo = new SellerContactInfo(firstName, lastName, email); Item item = new Item(prodId,name,desc,fileName, thumbPath, pricex, addr,contactInfo,0,0); // validate item String[] errors=item.validateWithMessage(); if(bDebug) System.out.println("*** validation errors = " + errors.length); if(errors.length > 0) { // some validation errors have been hit through an exception StringBuilder sbMess=new StringBuilder(); for(String mesg : errors) { sbMess.append(mesg); sbMess.append("\n"); } sendErrorResponse(response, writer, sbMess.toString()); return; } if (catalogFacade == null) { Map<String,Object> contextMap = context.getExternalContext().getApplicationMap(); this.catalogFacade = (CatalogFacade)contextMap.get("CatalogFacade"); } // now parse tags for item StringTokenizer stTags=new StringTokenizer(tags, " "); String tagx=null; while(stTags.hasMoreTokens()) { tagx=stTags.nextToken().toLowerCase(); Tag tag=null; if(bDebug) System.out.println("Adding TAG = " + tagx); // see if tag is already in item if(!item.containsTag(tagx)) { // add correct tag reference to item item.getTags().add(catalogFacade.addTag(tagx)); } } itemId=catalogFacade.addItem(item); PetstoreUtil.getLogger().log(Level.FINE, "Item " + name + " has been persisted"); } catch (Exception ex) { // since this method is access through an ajax call, must send back a message // so the client can forward the user to the systemerror page PetstoreUtil.getLogger().log(Level.SEVERE, "fileupload.persist.exception", ex); response.sendError(response.SC_INTERNAL_SERVER_ERROR, ex.toString()); return; } String responseMessage = firstName+", Thank you for submitting your book "+name+" !"; FileUploadResponse fuResponse = new FileUploadResponse( itemId, prodId, responseMessage, status.getStatus(), Long.toString(status.getUploadTime()), status.getUploadTimeString(), status.getStartUploadDate().toString(), status.getEndUploadDate().toString(), Long.toString(status.getTotalUploadSize()), thumbPath); session.removeAttribute(FILE_UL_RESPONSE); session.setAttribute(FILE_UL_RESPONSE, fuResponse); /** the following writer operation is for the case when iframe * bug is fixed. they are not used currently in the client */ StringBuffer sb=new StringBuffer(); response.setContentType("text/xml;charset=UTF-8"); response.setHeader("Pragma", "No-Cache"); response.setHeader("Cache-Control", "no-cache,no-store,max-age=0"); response.setDateHeader("Expires", 1); sb.append("<response>"); sb.append("<message>"); sb.append(responseMessage); sb.append("</message>"); sb.append("<status>"); sb.append(status.getStatus()); sb.append("</status>"); sb.append("<duration>"); sb.append(status.getUploadTime()); sb.append("</duration>"); sb.append("<duration_string>"); sb.append(status.getUploadTimeString()); sb.append("</duration_string>"); sb.append("<start_date>"); sb.append(status.getStartUploadDate()); sb.append("</start_date>"); sb.append("<end_date>"); sb.append(status.getEndUploadDate()); sb.append("</end_date>"); sb.append("<upload_size>"); sb.append(status.getTotalUploadSize()); sb.append("</upload_size>"); sb.append("<thumbnail>"); sb.append(thumbPath); sb.append("</thumbnail>"); sb.append("<itemId>"); sb.append(itemId); sb.append("</itemId>"); sb.append("<productId>"); sb.append(prodId); sb.append("</productId>"); sb.append("</response>"); if(bDebug) System.out.println("Response:\n" + sb); writer.write(sb.toString()); writer.flush(); } catch (IOException iox) { PetstoreUtil.getLogger().log(Level.SEVERE, "FileUploadPhaseListener error writting AJAX response", iox); } } private String constructThumbnail(String path) { String thumbPath = null; File file = new File(path); String aPath = file.getAbsolutePath(); // first, construct the file name for thumbnail if (file.exists()) { int idx = aPath.lastIndexOf("."); if (idx > 0) { thumbPath = aPath.substring(0, idx)+"_thumb"+aPath.substring(idx, aPath.length()); } } try { ImageScaler imgScaler = new ImageScaler(aPath); imgScaler.keepAspectWithWidth(); imgScaler.resizeWithGraphics(thumbPath); } catch (Exception e) { PetstoreUtil.getLogger().log(Level.SEVERE, "ERROR in generating thumbnail", e); } return thumbPath; } private String getStringValue(Hashtable htUpload, String key) { if(key == null) return null; String sxTemp=(String)htUpload.get(key); if(sxTemp == null) { sxTemp=""; } return sxTemp; } public String getUploadImageDirectory() { return PetstoreConstants.PETSTORE_IMAGE_DIRECTORY + "/images"; } private void sendErrorResponse(HttpServletResponse response, ResponseWriter writer, String mess) throws IOException { response.setContentType("text/xml;charset=UTF-8"); response.setHeader("Pragma", "No-Cache"); response.setHeader("Cache-Control", "no-cache,no-store,max-age=0"); response.setDateHeader("Expires", 1); writer.write("<response>"); writer.write("<message>"); writer.write("Validation Error"); writer.write("</message>"); writer.write("<detail>"); writer.write(mess); writer.write("</detail>"); writer.write("</response>"); } }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -