Automatic FTP upload - upload of files in subfolders not working correct (fixed)

Automatic FTP upload - upload of files in subfolders not working correct (fixed)

3

    Sep 13, 2019#1

    I'm trying out a trial of UEStudio and I'm having a problem with the automatic uploading of files within subfolders.

    As a simple example, I have the following folder structure:
    • Project Folder
      • Subfolder
        • Sub File 1
        • Sub File 2
      • File 1
      • File 2
    If I modify File 1 or File 2, upon save the file is uploaded via FTP as expected. However if I modify Sub File 1 or Sub File 2, the file is uploaded, but incorrectly uploaded into the project folder and not the subfolder.

    I have looked through the settings, but cannot see anything obvious and I've also tried using a different FTP server to rule out an issue there, but the problem still persists.

    Software wise:

    - Currently latest version of UEStudio
    - Cerberus FTP Server (but I have also tried FileZilla server).
    - Windows 10 1903 (all updated)

    Any help/suggestions would be welcome.

    6,675585
    Grand MasterGrand Master
    6,675585

      Sep 13, 2019#2

      Do you have configured the project as described by power tip Link remote directories to local directories?

      There could be interesting for you also some other UltraEdit and UEStudio power tips.

      PS: I don't use usually FTP and therefore can't quickly test if there is a bug in currently latest version of UEStudio with FTP synchronization between local files of a project and remote files on server. But I can do that on weekend if that is necessary to help you.
      Best regards from an UC/UE/UES for Windows user from Austria

      3

        Sep 13, 2019#3

        Thank you for your reply.

        The first link you provided is how I setup the root folder of the project. Using the link FTP option and / for the folder selection on the FTP side of things. But am I right in taking away, that you have to add a each sub folder in the same way?

        Considering when adding the root folder, the sub folders are shown within the project file list, I presumed the structure would be applied when uploading files from sub folders. It seems an odd behaviour not to, as currently if I have files of the same name in the root and a sub folder, saving and auto uploading the file from the sub folder overwrites the file of the same name in the root folder (on the server). Which surely can't be the intended behaviour?

        Again, thanks for your reply and any further advice, or things to try, would be much appreciated.

        6,675585
        Grand MasterGrand Master
        6,675585

          Sep 14, 2019#4

          It was the first time after using UEStudio about 14 years and UltraEdit more than 20 years that I created a project linked with an FTP account/server. My main job is C/C++  programming and for that reason this was never done by me before.

          I could not really believe what I encountered on doing that and making some tests. I doubt that all versions of UltraEdit and UEStudio ever released in the past supported projects linked to an FTP server in the manner as observed by me using currently latest UEStudio v19.10.0.46 and UltraEdit for Windows v26.20.0.6. I have sent two issue reports to IDM support by email and I am looking forward to the replies.

          I created first a directory C:\Temp\ExampleFTP and next a subdirectory with general name subfolder.

          Then I created a file test.html in directory C:\Temp\ExampleFTP with content:

          Code: Select all

          <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
          <html>
          <head>
           <title>Test File Root</title>
           <meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
          </head>
          <body>
          
          <p>Test file in root folder of server.</p>
          
          </body>
          </html>
          
          I created further one more test.html in directory C:\Temp\ExampleFTP\subfolder with content:

          Code: Select all

          <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
          <html>
          <head>
           <title>Test File Subfolder</title>
           <meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
          </head>
          <body>
          
          <p>Test file in subfolder of server.</p>
          
          </body>
          </html>
          
          Next I created project ExampleFTP with C:\Temp\ExampleFTP as project directory resulting in UEStudio creating in this directory the additional files ExampleFTP.prj and ExampleFTP.pui according to my configuration. In checked in Project Settings on tab Settings in group Folder options the option Include subdirectories and entered *.html as Filter. Then I switched to tab Files/folders in still opened in Project Settings, clicked on Add folder, used button Browse to select the project folder C:\Temp\ExampleFTP, clicked on button OK and clicked on button Close to close the Project Settings dialog.

          So I could see now on tab Project of Workspace manager, which is File View in UltraEdit, the project ExampleFTP with the folder .\ containing the file test.html and the folder subfolder with the file test.html.

          I created an FTP account for an FTP server of my internet provider which I rarely use and tested with Open from FTP if account configuration was done correct by me. Next I right clicked on .\ on tab Project of Workspace manager and clicked on context menu item FTP settings. I checked Link folder to FTP location, selected the just created FTP account and specified / as Remote path before clicking on button OK. So the project folder is linked now with the root directory on the FTP server.

          My first action was right clicking on .\ on tab Project of Workspace manager and clicking on context menu item Upload to server. I could see on tab FTP Transfers in Output Window that four files were uploaded successfully to the server. Four files? There are only two *.html files.

          I opened Advanced - Settings or Configuration - FTP, enabled Show FTP log in output window, closed Configuration with OK and executed same upload to server as before. I could see to my surprise on tab FTP Log in Output Window that also the files ExampleFTP.prj and ExampleFTP.pui were uploaded by UEStudio. I expected only the project files according to applied filter are uploaded and not all files in that directory. I don't know if uploading all files in a project directory and not just the project files as displayed on tab Project is an issue or is by design. It could be by design as it could be useful for web authors for example for images, videos, etc. also stored in project directory, but of course not included in list of project files as such files cannot be edited in UEStudio or UltraEdit. So I wrote an issue report and sent it by email to IDM support for clarification.

          I created in C:\Temp\ExampleFTP a directory server, moved the file test.html and the directory subfolder with its file test.html into directory server, opened Project Settings, removed folder .\, added folder .\server\ with FTP settings as before for .\, closed project settings and used again Upload to server from context menu of project folder .\server\. This time only the two HTML files were uploaded successfully. Fine.

          I connected with Total Commander to the FTP server (it's always good to use another application for verification) and looked on the files and directories before deleting the directory subfolder with its file test.html and the file test.html in root of FTP server and of course the two files ExampleFTP.prj and ExampleFTP.pui which I wanted never to upload to server.

          I right clicked on file test.html in project directory .\server\ and clicked on Upload to server. But to my next surprise this action failed according to FTP Transfer. I could see in FTP Log that FTP command STOR was executed without a file name. So the server returned error code 500. Same problem with Upload with sync.

          I right clicked next on file test.html in project directory subfolder and clicked on Upload to server. But this file upload failed also because of FTP command STOR was executed again without a file name. So the server returned error code 500. Same problem with Upload with sync. I could see additionally in FTP Log that UEStudio tried to upload the file to root directory of FTP server.

          I right clicked next on project directory subfolder and clicked on Upload to server. This time the file upload was successful. But instead of creating the directory subfolder on FTP server and uploading file test.html into this directory on server, the file was uploaded into root directory of the FTP server. That was definitely not what I expected here.

          I connected to the FTP server, deleted wrong uploaded test.html in root directory of server and created the directory subfolder. Then I tried Upload to server on project directory subfolder once again, but unfortunately with same unexpected result of uploading test.html into root directory of the FTP server.

          The same wrong behavior could be observed by me on having context menu option Automatically upload saved files enabled. The file upload failed on saving a modification of an HTML file opened from local disk.

          After additional tests with Upload with sync and with using UltraEdit for Windows v26.20.0.6 with same results as with UEStudio v19.10.0.46 my conclusion is:

          Upload to server and Upload with sync work only for the project directories on which the FTP setting was configured including a recursive upload of all files in all subdirectories. But it is not possible to use these commands on files or subdirectories in FTP linked project directory.

          All these issues with file upload not working at all and the wrong uploads of files in a subdirectory of an FTP linked project directory into root directory on FTP server were reported by me with a second issue report. These issues are definitely bugs in my point of view and surely not by design.

          My recommendation on using a project with having a folder added with recursive including all directories and all files matching a filter is using only Upload to server and Upload with sync on really FTP linked project directory.

          I hope that the IDM developers quickly fix the issues.

          I suppose that most web authors using UltraEdit and UEStudio open files from Explorer tab via FTP Accounts and do not use projects at all although I would never work this way. They have perhaps configured for each FTP account just a local backup directory. Or the issues observed by me as described above exist only in latest version(s) of UEStudio and UltraEdit and the file uploads worked in older versions. I really don't know that.
          Best regards from an UC/UE/UES for Windows user from Austria

          3

            Sep 16, 2019#5

            Thank you for looking into this in so much detail.

            Personally I prefer to have files stored locally on my pc within a folder dedicated for that project, rather than editing files on the server directly via FTP. Any secondary folders the project may have (CSS, JS etc) are stored within that projects root folder. For me personally the project functionality makes sense and allows me to easily switch between projects and not worry about accidentally opening a file with the same name (index.php for example) from a different project.

            My personal setup may be somewhat odd, but I wouldn't have thought unique to myself. I have a virtual machine setup that mimics the production server, so I'm always testing with the same version of Windows, IIS, PHP etc. I use the FTP functionality within UEStudio to connect to the FTP server on my development VM and upload the files to it as they're saved. This allows me to save, flick over to the browser and see if the code is functional. To give UEStudio it's credit, I have yet to hit save and the file not be uploaded by the time I refresh the browser - so from that perspective it is very efficient!

            I come in from using Mac and Panic's Coda, so I'm used to the the functionality of FTP uploading from within the code editor. Coda uploads files from the project and places them in the relevant folder on the FTP server (honouring the sub folders). Which UEStudio appears to do apart from the sub folder issues. But seeing as your results are similar to mine, it does appear to be a bug, and as in my previous post, I can't imagine how this could be the intended behaviour.

            Is the bug tracker for IDM/UEStudio public or do users only have access to the issues they report? (Purely out of curiosity and following what happens).

            Again, thank you for taking so much time/effort to look into this for me.

            6,675585
            Grand MasterGrand Master
            6,675585

              Sep 17, 2019#6

              I have received the replies on my two emails to IDM support. The behavior of uploading all files of a project folder and its subfolders and not just those displayed on tab Project according to configured filter is the intended behavior as it states in the help files. The other issues with project files not uploaded at all respectively the files in a subfolder of a linked project folder uploaded to linked directory on FTP server (root directory in my and your case) instead of appropriate subdirectory of linked directory on FTP server are confirmed issues (bugs) to be resolved by IDM developers.

              Your setup is definitely not somewhat odd. It is exactly the setup I would use also if I would work with website projects and which I would recommend all website authors/programmers. I suppose that the confirmed file upload issues are fixed quickly by the IDM developers in UltraEdit and UEStudio in the next weeks because those issues are really critical for website management.

              Open source software is managed often with a public accessible bug tracker. But commercial software is managed usually without a public viewable issue database. The issue database of IDM Computer Solutions, Inc. is also not public viewable. A user reporting an issue by email receives later often an email informing the user about the fix of this issue with the invitation to download a non-public user verification build for verification and in best case positive confirmation of the fix. The most important fixed issues and implemented enhancements are made public for every user in update dialog on using built-in update feature as well as on UltraEdit hotfix information page respectively UEStudio hotfix information page. The file changes.txt (UltraEdit) respectively changes_ues.txt (UEStudio) in program files folder of UltraEdit / UEStudio contains the main enhancements and fixes made between major version releases.
              Best regards from an UC/UE/UES for Windows user from Austria

              2
              NewbieNewbie
              2

                Jul 15, 2020#7

                Any news on this? I had a look at those hotfix information pages, but there is not very much about FTP listed. I have the same issue with sub directories and empty file name. How can I help to get this fixed?

                Attached a log file with Server type "Auto":

                Code: Select all

                15.07.2020 15:45:40: 220---------- Welcome to Pure-FTPd [privsep] [TLS] ----------
                220-You are user number 1 of 50 allowed.
                220-Local time is now 15:45. Server port: 21.
                220-This is a private system - No anonymous login
                220-IPv6 connections are also welcome on this server.
                220 You will be disconnected after 15 minutes of inactivity.
                15.07.2020 15:45:41: Command length: 11
                15.07.2020 15:45:41: AUTH TLS
                15.07.2020 15:45:41: 234 AUTH TLS OK.
                15.07.2020 15:45:41: Command length: 9
                15.07.2020 15:45:41: PBSZ 0
                15.07.2020 15:45:41: 200 PBSZ=0
                15.07.2020 15:45:41: Command length: 9
                15.07.2020 15:45:41: PROT P
                15.07.2020 15:45:41: 200 Data protection level set to "private"
                15.07.2020 15:45:41: Command length: 28
                15.07.2020 15:45:41: USER [email protected]
                15.07.2020 15:45:41: 331 User [email protected] OK. Password required
                15.07.2020 15:45:41: Command length: 23
                15.07.2020 15:45:41: PASS xxxxxxxx
                15.07.2020 15:45:41: 230 OK. Current restricted directory is /
                15.07.2020 15:45:41: Command length: 7
                15.07.2020 15:45:41: FEAT
                15.07.2020 15:45:41: 211-Extensions supported:
                 EPRT
                 IDLE
                 MDTM
                 SIZE
                 MFMT
                 REST STREAM
                 MLST type*;size*;sizd*;modify*;UNIX.mode*;UNIX.uid*;UNIX.gid*;unique*;
                 MLSD
                 AUTH TLS
                 PBSZ
                 PROT
                 UTF8
                 TVFS
                 ESTA
                 PASV
                 EPSV
                 SPSV
                 ESTP
                211 End.
                15.07.2020 15:45:41: Command length: 15
                15.07.2020 15:45:41: OPTS UTF8 ON
                15.07.2020 15:45:41: 200 OK, UTF-8 enabled
                15.07.2020 15:45:41: Command length: 6
                15.07.2020 15:45:41: PWD
                15.07.2020 15:45:41: 257 "/" is your current location
                15.07.2020 15:45:41: Command length: 9
                15.07.2020 15:45:41: PBSZ 0
                15.07.2020 15:45:41: 200 PBSZ=0
                15.07.2020 15:45:41: Command length: 9
                15.07.2020 15:45:41: PROT P
                15.07.2020 15:45:41: 200 Data protection level set to "private"
                15.07.2020 15:45:41: OnConnected(0, )
                15.07.2020 15:45:41: Command length: 9
                15.07.2020 15:45:41: TYPE I
                15.07.2020 15:45:41: 200 TYPE is now 8-bit binary
                15.07.2020 15:45:41: Command length: 7
                15.07.2020 15:45:41: PASV
                15.07.2020 15:45:41: 227 Entering Passive Mode (78,138,120,119,194,205)
                15.07.2020 15:45:41: Command length: 7
                15.07.2020 15:45:41: STOR
                15.07.2020 15:45:41: 501 No file name
                15.07.2020 15:45:41: OnDone(40501, No file name)
                15.07.2020 15:45:41: PutFile: wodFtpDLX internal error
                15.07.2020 15:45:41: OnDisconnected()
                and with server type "File Name Only" the upload was successful, but not to the subdirectory "/includes/", but to the root:

                Code: Select all

                15.07.2020 15:56:54: 220---------- Welcome to Pure-FTPd [privsep] [TLS] ----------
                220-You are user number 1 of 50 allowed.
                220-Local time is now 15:56. Server port: 21.
                220-This is a private system - No anonymous login
                220-IPv6 connections are also welcome on this server.
                220 You will be disconnected after 15 minutes of inactivity.
                15.07.2020 15:56:54: Command length: 11
                15.07.2020 15:56:54: AUTH TLS
                15.07.2020 15:56:54: 234 AUTH TLS OK.
                15.07.2020 15:56:54: Command length: 9
                15.07.2020 15:56:54: PBSZ 0
                15.07.2020 15:56:54: 200 PBSZ=0
                15.07.2020 15:56:54: Command length: 9
                15.07.2020 15:56:54: PROT P
                15.07.2020 15:56:54: 200 Data protection level set to "private"
                15.07.2020 15:56:54: Command length: 28
                15.07.2020 15:56:54: USER [email protected]
                15.07.2020 15:56:54: 331 User [email protected] OK. Password required
                15.07.2020 15:56:54: Command length: 23
                15.07.2020 15:56:54: PASS xxxxxxxx
                15.07.2020 15:56:54: 230 OK. Current restricted directory is /
                15.07.2020 15:56:54: Command length: 7
                15.07.2020 15:56:54: FEAT
                15.07.2020 15:56:54: 211-Extensions supported:
                 EPRT
                 IDLE
                 MDTM
                 SIZE
                 MFMT
                 REST STREAM
                 MLST type*;size*;sizd*;modify*;UNIX.mode*;UNIX.uid*;UNIX.gid*;unique*;
                 MLSD
                 AUTH TLS
                 PBSZ
                 PROT
                 UTF8
                 TVFS
                 ESTA
                 PASV
                 EPSV
                 SPSV
                 ESTP
                211 End.
                15.07.2020 15:56:54: Command length: 15
                15.07.2020 15:56:54: OPTS UTF8 ON
                15.07.2020 15:56:54: 200 OK, UTF-8 enabled
                15.07.2020 15:56:54: Command length: 6
                15.07.2020 15:56:54: PWD
                15.07.2020 15:56:54: 257 "/" is your current location
                15.07.2020 15:56:54: Command length: 9
                15.07.2020 15:56:54: PBSZ 0
                15.07.2020 15:56:54: 200 PBSZ=0
                15.07.2020 15:56:54: Command length: 9
                15.07.2020 15:56:54: PROT P
                15.07.2020 15:56:54: 200 Data protection level set to "private"
                15.07.2020 15:56:54: OnConnected(0, )
                15.07.2020 15:56:54: Command length: 9
                15.07.2020 15:56:54: TYPE I
                15.07.2020 15:56:54: 200 TYPE is now 8-bit binary
                15.07.2020 15:56:54: Command length: 8
                15.07.2020 15:56:54: CWD /
                15.07.2020 15:56:54: 250 OK. Current directory is /
                15.07.2020 15:56:54: Command length: 7
                15.07.2020 15:56:54: PASV
                15.07.2020 15:56:54: 227 Entering Passive Mode (78,138,120,119,243,46)
                15.07.2020 15:56:54: Command length: 24
                15.07.2020 15:56:54: STOR header-ready.php
                15.07.2020 15:56:54: 150 Accepted data connection
                15.07.2020 15:56:54: 226-File successfully transferred
                226 0.037 seconds (measured here), 291.58 Kbytes per second
                15.07.2020 15:56:54: OnDone(0, )
                15.07.2020 15:56:54: OnDisconnected()
                I noticed that during the failed upload my folder and file permissions were changed to is writeable by group - was wondering because my web app gave me 500 server errors, so I found that permission issue at my server log, reverted it back to 755 on folders and 644 on files and everything was back to normal.

                6,675585
                Grand MasterGrand Master
                6,675585

                  Jul 19, 2020#8

                  I executed the steps as written in my report with UEStudio v20.00.0.48 and with UltraEdit for Windows v27.00.0.82. There is no change. The issue is still not fixed by IDM Computer Solutions, Inc.
                  Best regards from an UC/UE/UES for Windows user from Austria

                  2
                  NewbieNewbie
                  2

                    Jul 20, 2020#9

                    Thank you for the effort and feedback, hopefully it will be fixed soon.

                    6,675585
                    Grand MasterGrand Master
                    6,675585

                      Jan 04, 2022#10

                      The described and reported FTP upload/sync issues are fixed with UltraEdit for Windows v28.10.0.98 and with UEStudio v21.00.0.90.
                      Best regards from an UC/UE/UES for Windows user from Austria