Thanks for reply.
But that is not my problem.
Once again i clear my problem.
I want to upload all the information about product category etc from the
excel sheet where we write all the required information about product and
category. In that excel sheet i also mentioned the local system path of
image. Now i want to upload the image from local system to remote server
using path of that. Now i read the local system file path from excel sheet
as shown in bold.
I know we need a form to upload the file
<form method="post" action="uploadCategory" enctype="multipart/form-data">
file: <input type="file" name="file-upload">
<input type="submit">
</form> .
but i my case there is no form. i got the file path in my method now i want
to upload the that file from local system to remote server.
I think now you under stand my problem.
with the use of this we have no need to upload the product detail one by one
to the server.
waiting for your reply.
Thanks
Nalin Chandra
>
> public static String uploadCategory(HttpServletRequest request,
> HttpServletResponse response) {
>
> try
> {
> String filename = "D:/category.xls";
> WorkbookSettings ws = new WorkbookSettings();
> ws.setLocale(new Locale("en", "EN"));
> Workbook workbook = Workbook.getWorkbook(new File(filename),ws);
> Sheet s = workbook.getSheet(0);
> readCategoryDataSheet(s, request);
> workbook.close();
> }
> catch (IOException e)
> {
> e.printStackTrace();
> }
> catch (BiffException e)
> {
> e.printStackTrace();
> }
>
> return "success";
> }
>
> private static void readCategoryDataSheet(Sheet s, HttpServletRequest
> request)
> {
> Cell rowData[] = null;
> int successCount = 0;
> int failCount = 0;
> int rows = s.getRows();
> int column = s.getColumns();
> String productCategoryId = "";
> String productCategoryTypeId = "";
> String primaryParentCategoryId = "";
> String categoryName = "";
> String description = "";
> String longDescription = "";
> String categoryImageUrl = "";
> String linkOneImageUrl = "";
> String prodCatalogId = "";
> String prodCatalogCategoryTypeId = "";
> String sequenceNum = "";
>
> for (int i = 1; i < rows; i++) {
> rowData = s.getRow(i);
> if (rowData[0].getContents().length() != 0) {
> for (int j = 0; j < column; j++) {
> switch (j) {
> case 0:
> productCategoryId =
> rowData[j].getContents();
> case 1:
> productCategoryTypeId =
> rowData[j].getContents();
> case 2:
> primaryParentCategoryId =
> rowData[j].getContents();
> case 3:
> categoryName =
> rowData[j].getContents();
> case 4:
> description =
> rowData[j].getContents();
> case 5:
> longDescription =
> rowData[j].getContents();
> case 6:
> categoryImageUrl =
> rowData[j].getContents();
> case 7:
> linkOneImageUrl =
> rowData[j].getContents();
> default:
> break;
> }
> }
> }
> String imageFilenameFormat =
> UtilProperties.getPropertyValue("catalog", "image.filename.format");
> String imageServerPath =
> UtilProperties.getPropertyValue("catalog", "image.server.path");
> String imageUrlPrefix =
> UtilProperties.getPropertyValue("catalog", "image.url.prefix");
>
>
> // upload image
> FlexibleStringExpander filenameExpander = new
> FlexibleStringExpander(imageFilenameFormat);
> String catImageUrl = "";
> String linkImageUrl = "";
> if(categoryImageUrl != null &&
> categoryImageUrl.length() > 0){
> Object forLock = new Object();
> String contentType = null;
> String categoryImageLocation =
> filenameExpander.expandString(UtilMisc.toMap("location", "categories",
> "type", "category", "id", productCategoryId));
> String filePathPrefix = "";
> String filenameToUse = categoryImageLocation;
> if (categoryImageLocation.lastIndexOf("/") !=
> -1) {
> filePathPrefix =
> categoryImageLocation.substring(0, categoryImageLocation.lastIndexOf("/")
> +
> 1); // adding 1 to include the trailing slash
> filenameToUse =
> categoryImageLocation.substring(categoryImageLocation.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(IOException e){
> Debug.logInfo("Image uploading failure",
> module);
> }
> String categoryImageFileName =
> uploadObject.getFilename();
>
> if (categoryImageFileName != null &&
> categoryImageFileName.length() > 0) {
> if (categoryImageFileName.lastIndexOf(".")
> >
> 0 && categoryImageFileName.lastIndexOf(".") <
> categoryImageFileName.length()) {
> filenameToUse +=
> categoryImageFileName.substring(categoryImageFileName.lastIndexOf("."));
> } else {
> filenameToUse += ".jpg";
> }
> try{
> String characterEncoding =
> request.getCharacterEncoding();
> catImageUrl = imageUrlPrefix + "/" +
> filePathPrefix + java.net.URLEncoder.encode(filenameToUse,
> characterEncoding);
> }catch(Exception e){
> System.out.println("Incoding Problem");
> }
>
> try {
> File file = new File(imageServerPath +
> "/" + filePathPrefix, defaultFileName);
> File file1 = new File(imageServerPath
> +
> "/" + filePathPrefix, filenameToUse);
> try {
> file1.delete();
> } catch(Exception e) {
> System.out.println("error deleting
> existing file (not neccessarily a problem)");
> }
> file.renameTo(file1);
> } catch(Exception e) {
> e.printStackTrace();
> }
> }
> }
>
> // end of upload image
>
> Timestamp fromDate = UtilDateTime.nowTimestamp();
> GenericDelegator delegator = (GenericDelegator)
> request.getAttribute("delegator");
> try {
> GenericValue DataImportCategoryList =
> delegator.findByPrimaryKey("DataImportCategory",
> UtilMisc.toMap("productCategoryId", productCategoryId));
>
> if(DataImportCategoryList != null){
> String categoryId =
> DataImportCategoryList.getString("productCategoryId");
> if(categoryId.equals(productCategoryId)){
> failCount++;
> }
> }else {
> GenericValue newImportCategory =
> delegator.makeValue("DataImportCategory", null);
>
> newImportCategory.set("productCategoryId",
> productCategoryId.trim());
> if(productCategoryTypeId != null && productCategoryTypeId.length()
> >
> 0){
> newImportCategory.set("productCategoryTypeId",
> productCategoryTypeId.trim());
> } else {
>
> newImportCategory.set("productCategoryTypeId", "CATALOG_CATEGORY");
> }
> if(primaryParentCategoryId != null &&
> primaryParentCategoryId.length() > 0)
> newImportCategory.set("primaryParentCategoryId",
> primaryParentCategoryId);
> newImportCategory.set("categoryName", categoryName.trim());
> newImportCategory.set("description", description);
> newImportCategory.set("longDescription", longDescription);
> newImportCategory.set("categoryImageUrl", catImageUrl);
> newImportCategory.set("linkOneImageUrl", linkImageUrl);
> newImportCategory.set("fromDate",
> fromDate);
> try {
>
> delegator.create(newImportCategory);
> Debug.logInfo("Successfully
> imported category ["+productCategoryId+" from row no "+ i+1 +"].",
> module);
> successCount++;
> } catch (GenericEntityException e) {
> Debug.logWarning(e.getMessage(),
> module);
> }
>
> }
> } catch(GenericEntityException e) {
> Debug.logError("Exception occured :"+e.getMessage(), module);
> }
> }
>
> }
>
>
> it create the temp file in corresponding directory but there is no actual
> image at that path.
>
> So any one have any idea regarding this please suggest me.
>
>
> Thanks.
>
> Nalin Chandra
--
View this message in context:
http://www.nabble.com/how-to-import-data-from-excel-sheet-tp23467442p23470551.html
Sent from the OFBiz - User mailing list archive at Nabble.com.