Ok the way to upload changes with out a form.
First understand that in the form way the image is uploaded into server
memory, from your desktop, then you read the data from the server memory
and put it into a file. This is a function of the webbrowser not ofbiz.
The problem is that a server can not read from you local drive. You can
only do this thru a web browser.
so you must either put the images on the server, thru FTP then reference
them that way in your excel.
or put the images on a machine that is exposed to the internet with a
web server and give a http:// type url to be uploaded, in your excel.
nalin chandra sent the following on 5/10/2009 7:24 AM:
> 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
>
>
--
BJ Freeman
http://www.businessesnetwork.com/automation
http://bjfreeman.elance.com
http://www.linkedin.com/profile?viewProfile=&key=1237480&locale=en_US&trk=tab_pro
Systems Integrator.