Tapestry
  1. Tapestry
  2. TAPESTRY-1227

IUploadFile implementations should be prepared for "all" file name-separator characters in getFileName()

    Details

    • Type: Bug Bug
    • Status: Resolved
    • Priority: Critical Critical
    • Resolution: Fixed
    • Affects Version/s: 4.1.2
    • Fix Version/s: 4.1.2
    • Component/s: tapestry-core
    • Labels:
      None
    • Environment:
      linux server, windows client

      Description

      I use the Upload component to allow files to be uploaded by users, and I have the following problem when the server and the client runs different OSs.
      1. the file to be uploaded is selected in the browser on windows (eg. C:\Képek\image.jpg)
      2. the file is uploaded
      3. the application running on linux calls IUploadFile.getFileName() and gets "C:\Képek\image.jpg" instead of the expected "image.jpg"

      The problem is with UploadPart.getFileName():

      public String getFileName()

      { File file = new File(this.getFilePath()); return file.getName(); }

      In this implementation File.getName() will use the OS's name-separator character ('/' in my case) but the uploaded file contains other characters ('
      ') instead.

      If I manually edit the path of the selected file in the file browser field from "C:\Képek\image.jpg" to "C:/Képek/image.jpg" before hitting the upload button, the upload process works fine (and luckily it seems that Windows eats '/' separators as well ). But of course this should be handled automatically.

      Probably the same problem should be handled in IUploadFile.getFilePath() as well.

      What do you think?

      Regards:
      Norbi

        Activity

          People

          • Assignee:
            Jesse Kuhnert
            Reporter:
            Norbert Sándor
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development