http://commons.apache.org/fileupload/using.html
will get you a file from a users desktop, using a browser Note this load the file into memory on the server so make sure you server memory can accommodate the file your going to upload. The other way is to have a folder under the ofbiz root, then put a parameter in the web.xml you can look up in the code. the user then ftp's into that folder. harish84 sent the following on 4/14/2009 3:41 AM: > Actually when i try to upload a file by using apache poi library i get this > error.When i used request.getParameter i was not able to get complete path > in mozilla so i have written a code as > > > > package org.ofbiz.product.product; > > //~--- non-JDK imports > -------------------------------------------------------- > > import org.apache.poi.hssf.usermodel.HSSFCell; > import org.apache.poi.hssf.usermodel.HSSFRichTextString; > import org.apache.poi.hssf.usermodel.HSSFRow; > import org.apache.poi.hssf.usermodel.HSSFSheet; > import org.apache.poi.hssf.usermodel.HSSFWorkbook; > import org.apache.poi.poifs.filesystem.POIFSFileSystem; > import org.ofbiz.base.util.UtilDateTime; > import org.ofbiz.base.util.UtilMisc; > import org.ofbiz.base.util.UtilProperties; > import org.ofbiz.base.util.UtilValidate; > import org.ofbiz.entity.GenericDelegator; > import org.ofbiz.entity.GenericEntityException; > import org.ofbiz.entity.GenericValue; > import org.ofbiz.entity.util.EntityUtil; > import java.util.HashMap; > import java.util.Map; > import org.apache.commons.fileupload.*; > import org.apache.commons.fileupload.servlet.ServletFileUpload; > import org.apache.commons.fileupload.disk.DiskFileItemFactory; > import org.apache.commons.io.FilenameUtils; > import javax.servlet.http.HttpServletRequest; > import javax.servlet.http.HttpServletResponse; > import org.ofbiz.base.util.string.FlexibleStringExpander; > > > //~--- JDK imports > ------------------------------------------------------------ > import java.io.File; > import java.io.FileInputStream; > import java.io.FileNotFoundException; > import java.io.IOException; > import java.io.InputStream; > import org.ofbiz.base.util.HttpRequestFileUpload; > > import java.util.Iterator; > import java.util.ArrayList; > import java.util.List; > > import org.ofbiz.base.util.Debug; > /** > * This java program is used to read the data from a Excel file and display > them > * on the console output. > * > * @author dhanago > */ > public class POIExcelReader > { > public static String module = POIExcelReader.class.getName(); > > /** Creates a new instance of POIExcelReader */ > public POIExcelReader () > {} > > /** > * This method is used to display the Excel content to command line. > * > * @param xlsPath > */ > //@SuppressWarnings ("unchecked") > public static String displayFromExcel (HttpServletRequest > request,HttpServletResponse response) > { > > Debug.logInfo("################## Inside method displayFromExcel",module); > //String xlsPath = "C:\\harish.xls"; > //String path = System.getProperty("user.dir") + "\\framework"; > //String path = request.getParameter("product"); > String imageFilenameFormat = UtilProperties.getPropertyValue("catalog", > "image.filename.format"); > String imageServerPath = UtilProperties.getPropertyValue("catalog", > "image.server.path"); > String imageUrlPrefix = UtilProperties.getPropertyValue("catalog", > "image.url.prefix"); > > FlexibleStringExpander filenameExpander = new > FlexibleStringExpander(imageFilenameFormat); > > String contentType = null; > String path = request.getParameter("product"); > if (path != null) { > > > String fileLocation = > filenameExpander.expandString(UtilMisc.toMap("location", > "productsspreadsheet", "type", "spreadsheet", "id", "productexecl")); > String filePathPrefix = ""; > String filenameToUse = fileLocation; > if (fileLocation.lastIndexOf("/") != -1) { > filePathPrefix = fileLocation.substring(0, > fileLocation.lastIndexOf("/") + 1); // adding 1 to include the trailing > slash > filenameToUse = > fileLocation.substring(fileLocation.lastIndexOf("/") + 1); > } > > int i1; > if (contentType != null && (i1 = contentType.indexOf("boundary=")) != > -1) { > contentType = contentType.substring(i1 + 9); > contentType = "--" + contentType; > } > > String defaultFileName = filenameToUse + "_temp"; > HttpRequestFileUpload uploadObject = new HttpRequestFileUpload(); > uploadObject.setOverrideFilename(defaultFileName); > uploadObject.setSavePath(imageServerPath + "/" + filePathPrefix); > try{ > uploadObject.doUpload(request); > } > catch(Exception e) > { > e.printStackTrace(); > } > > String clientFileName = uploadObject.getFilename(); > > if (clientFileName != null && clientFileName.length() > 0) { > if (clientFileName.lastIndexOf(".") > 0 && > clientFileName.lastIndexOf(".") < clientFileName.length()) { > filenameToUse += > clientFileName.substring(clientFileName.lastIndexOf(".")); > } else { > filenameToUse += ".xls"; > } > > > String characterEncoding = request.getCharacterEncoding(); > try{ > String imageUrl = imageUrlPrefix + "/" + filePathPrefix + > java.net.URLEncoder.encode(filenameToUse, characterEncoding); > } > catch(Exception e) { > e.printStackTrace(); > } > > > > try { > File file = new File(imageServerPath + "/" + filePathPrefix, > defaultFileName); > File file1 = new File(imageServerPath + "/" + filePathPrefix, > filenameToUse); > try { > file1.delete(); > } catch(Exception e) { > Debug.logInfo("error deleting existing file (not > neccessarily a problem)",module); > } > file.renameTo(file1); > } catch(Exception e) { > e.printStackTrace(); > } > > > Debug.logInfo("################## xlsPath"+path,module); > GenericDelegator delegator = (GenericDelegator) > request.getAttribute("delegator"); > InputStream inputStream = null; > > try > { > inputStream = new FileInputStream (path); > } > catch (FileNotFoundException e) > { > Debug.logInfo("################## File not found in the specified > path"+path,module); > e.printStackTrace (); > } > > POIFSFileSystem fileSystem = null; > > try > { > fileSystem = new POIFSFileSystem (inputStream); > Debug.logInfo("################## fileSystem"+fileSystem,module); > HSSFWorkbook workBook = new HSSFWorkbook (fileSystem); > HSSFSheet sheet = workBook.getSheetAt (0); > Iterator rows = sheet.rowIterator(); > rows.next (); > > > //String productId = null; > //String productTypeId = null; > //String internalName = null; > //String productName = null; > //String description = null; > //String is_Virtual = null; > //String is_Variant = null; > //String on_Ebay = null; > //String on_Amazon = null; > List products = new ArrayList(); > List finalresult = new ArrayList(); > while(rows.hasNext()){ > HSSFRow row=(HSSFRow)rows.next(); > > Iterator cells=row.cellIterator(); > Debug.logInfo("cells="+cells,module); > while(cells.hasNext()){ > HSSFCell cell=(HSSFCell)cells.next(); > int cellType=cell.getCellType(); > Debug.logInfo("cells="+cellType,module); > if(cellType==HSSFCell.CELL_TYPE_STRING){ > HSSFRichTextString strData=cell.getRichStringCellValue(); > int strData1=cell.getColumnIndex(); > Debug.logInfo("################## productId"+ strData,module); > List result = new ArrayList(); > if (row != null) { > // read productId from first column "sheet column > index > // starts from 0" > HSSFCell cell0 = row.getCell((short) 0); > cell0.setCellType(HSSFCell.CELL_TYPE_STRING); > String productId = cell0.getStringCellValue(); > // read QOH from ninth column > Debug.logInfo("################## > productId"+productId,module); > > boolean productExists = > FileImportHelper.checkProductExists(productId, delegator); > if (productId != null && > !productId.trim().equalsIgnoreCase("")) > { > > products.add(FileImportHelper.prepareProduct(productId)); > } > HSSFCell cell1 = row.getCell((short) 1); > cell1.setCellType(HSSFCell.CELL_TYPE_STRING); > String productTypeId = cell1.getStringCellValue(); > Debug.logInfo("################## > productTypeId"+productTypeId,module); > HSSFCell cell2 = row.getCell((short) 2); > cell2.setCellType(HSSFCell.CELL_TYPE_STRING); > String internalName = cell2.getStringCellValue(); > Debug.logInfo("################## > internalName"+internalName,module); > HSSFCell cell3 = row.getCell((short) 3); > cell3.setCellType(HSSFCell.CELL_TYPE_STRING); > String productName = cell3.getStringCellValue(); > Debug.logInfo("################## > productName"+productName,module); > HSSFCell cell4 = row.getCell((short) 4); > cell4.setCellType(HSSFCell.CELL_TYPE_STRING); > String description = cell4.getStringCellValue(); > Debug.logInfo("################## > description"+description,module); > HSSFCell cell5 = row.getCell((short) 5); > cell5.setCellType(HSSFCell.CELL_TYPE_STRING); > String isVirtual = > cell5.getStringCellValue().toString(); > Debug.logInfo("################## > is_Virtual"+isVirtual,module); > HSSFCell cell6 = row.getCell((short) 6); > cell6.setCellType(HSSFCell.CELL_TYPE_STRING); > String isVariant = > cell6.getStringCellValue().toString(); > Debug.logInfo("################## > is_Variant"+isVariant,module); > HSSFCell cell7 = row.getCell((short) 7); > cell7.setCellType(HSSFCell.CELL_TYPE_STRING); > String onEbay = > cell7.getStringCellValue().toString(); > Debug.logInfo("################## > on_Ebay"+onEbay,module); > HSSFCell cell8 = row.getCell((short) 8); > cell8.setCellType(HSSFCell.CELL_TYPE_STRING); > String onAmazon = > cell8.getStringCellValue().toString(); > Debug.logInfo("################## > on_Amazon"+onAmazon,module); > Map abs=new HashMap(); > abs.put("productId",productId); > abs.put("productTypeId",productTypeId); > abs.put("internalName",internalName); > abs.put("productName",productName); > abs.put("description",description); > abs.put("isvirtual",isVirtual); > abs.put("isvariant",isVariant); > abs.put("onEbay",onEbay); > abs.put("onAmazon",onAmazon); > finalresult.add(abs); > //HSSFCell cell8 = row.getCell((short) 8); > // Debug.logInfo("################## setting > productId"+ productId,module); > //Debug.logInfo("################## setting productTypeId"+ > productTypeId,module); > //Debug.logInfo("################## setting internalname"+ > internalName,module); > //Debug.logInfo("################## setting productname"+ > productName,module); > //Debug.logInfo("################## setting > productTypeId"+productTypeId,module); > //Debug.logInfo("################## setting internalname"+ > onEbay,module); > //Debug.logInfo("################## setting internalname"+ > onAmazon,module); > //Debug.logInfo("################## setting internalname"+ > isVirtual,module); > //Debug.logInfo("################## setting internalname"+ > isVariant,module); > //GenericDelegator delegator = (GenericDelegator) > request.getAttribute("delegator"); > GenericValue Prod = > delegator.findByPrimaryKey("Product",UtilMisc.toMap("productId", > productId)); > Debug.logInfo("################## Prod" +Prod,module); > if (Prod==null) > { > > Prod = delegator.makeValue("Product", null); > Prod.set("productId",productId); > Prod.set("productTypeId", productTypeId); > Prod.set("internalName", internalName); > Prod.set("productName", productName); > Prod.set("description", description); > Prod.set("isVariant", isVariant); > Prod.set("isVirtual", isVirtual); > Prod.set("onEbay", onEbay); > Prod.set("onAmazon", onAmazon); > Prod.create(); > //Prod.set("productId", productId); > } > > } > } > > > > > > else if(cellType==HSSFCell.CELL_TYPE_NUMERIC){ > double data=cell.getNumericCellValue(); > Debug.logInfo("################## else"+ data,module); > > } > > //Debug.logInfo("################## finalresult" +finalresult,module); > } > //Debug.logInfo("################## after whiles finalresult" > +finalresult,module); > } > } > > > > catch(Exception e) > { > return "error"; > } > > return "success"; > } > } > return "success"; > } > } > > > > ############################################################### > > Getting error as > > > ################################################################## > > waitingwaited 21 times, bailing out while still expecting 18 bytes. > java.io.IOException: waited 21 times, bailing out while still expecting 18 > bytes. > at > org.ofbiz.base.util.HttpRequestFileUpload.waitingReadLine(HttpRequestFileUpload.java:280) > at > org.ofbiz.base.util.HttpRequestFileUpload.doUpload(HttpRequestFileUpload.java:134) > at > org.ofbiz.product.product.POIExcelReader.displayFromExcel(POIExcelReader.java:100) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) > at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) > at java.lang.reflect.Method.invoke(Unknown Source) > at > org.ofbiz.webapp.event.JavaEventHandler.invoke(JavaEventHandler.java:88) > at > org.ofbiz.webapp.event.JavaEventHandler.invoke(JavaEventHandler.java:74) > at > org.ofbiz.webapp.control.RequestHandler.runEvent(RequestHandler.java:471) > at > org.ofbiz.webapp.control.RequestHandler.doRequest(RequestHandler.java:304) > at > org.ofbiz.webapp.control.ControlServlet.doGet(ControlServlet.java:189) > at > org.ofbiz.webapp.control.ControlServlet.doPost(ControlServlet.java:77) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:615) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:688) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) > at > org.ofbiz.webapp.control.ContextFilter.doFilter(ContextFilter.java:248) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) > at > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) > at > org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) > at > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) > at > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) > at > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) > at > org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:568) > at > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286) > at > org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869) > at > org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664) > at > org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528) > at > org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81) > at > org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:690) > at java.lang.Thread.run(Unknown Source) > > > > > > |
Free forum by Nabble | Edit this page |