File corruption during ftp transfer ASCII vs. BINARY

Occasionally, issues occur with files becoming corrupt when uploading through FTP. When viewing the corrupted file through the browser, the following error will be thrown.

This image can not be displayed because it contains errors

This is typically caused by uploading files through FTP as ASCII file transfer type. The ASCII transfer type” will transfer the files as regular text files. The “Binary transfer type” will transfer the data in binary mode which handles the files as binary data instead of text data. Setting your FTP client to Binary will prevent your files from becoming corrupted through ftp transit. Please see the following on how to switch your FTP program to Binary.

It’s also been brought to our attention that another possible cause of file corruption during FTP transfers, could be from your local firewall. Please also check for any updates to your firewall software, and possibly restart your router as well, if switching your FTP client settings to binary doesn’t work.

Changing your ftp program to binary transfer

You can change the transfer type in your ftp program to Binary. All FTP programs should have this functionality. The following steps will demonstrate how to change the transfer type from ASCII to Binary in Filezilla.

  1. Open your Filezilla ftp program.
  2. Settings in FileZilla

    Select “Edit” and click “Settings from the drop Box.

  3. Transfer settings FileZilla

    In the “Select page:” box, under “Transfers“, click “File Types.

  4. Binary radio button FileZilla

    In the “Default transfer type” section, select the “Binary” radio button.

    Click OK.

    Now when you connect to your server with ftp, files will be treated as Binary files. This should prevent the files from becoming corrupted.


Thoughts on “File corruption during ftp transfer ASCII vs. BINARY

  • Hello, 
    I have a problem with files uploading via FTP to my Server. Searched many forums, but didn’t find any solution.

    I’ve got a case with the ftp server.
    The files are being uploaded once in 8 minutes and then deleted in 1 minute, so we cannot access them when needed during work.

    I’ve read many forums saying that you should check the path; or the firewall, or the format, but nothing.

    Also, the format we need is txt,not binary.

     

    I would really appreciate your help!

    • Sorry for the problem with uploading files to your FTP server. If there are error or problems when you upload, then you should see them in your log (in the FTP client). The error messages there will help you to determine what’s causing the problem. FTP settings for my FTP client (I use FileZilla) are set to AUTO for file type – I let the client determine how it needs to send. The other choices are ASCII or Binary. Typically, the setting for accepting these transfer types are set at the server. I would double-check to make sure that your FTP client is connecting properly. Then, I would also double-check to make sure that your destination is not full (in terms of disk space). If you continue to have problems, then you should contact your hosting service as they will have access to determine why your FTP transfers are not working properly.

  • The size of the file gets compressed automatically and corrupted when uploaded via FileZilla. I’ve tried changing the File Type to ‘Binary’ in the settings. It is not rectified. Is there a way we can resolve this issue? Please help.

    • Hello,

      Sorry for the problem with the file being corrupted. The file itself is what needs to be compressed. My suggestion is that you use an application on your computer to compress the file FIRST, then upload it. Once you have compressed, you can also uncompress it and then check the file’s integrity.

  • Hi,

    I am using WinSCP to transfer file from one server to another server. But when the file is transfered and processed some of file data get missed to update in database.

    Can you help me out in this?

    Thanks,

    Soniya 

    • Hello Soniya,

      Sorry for the issue with your file data. This doesn’t sound like an issue with the WinSCP program, but something file related. Double-check your logs from WinSCP to see if an error occurred during transfer. If nothing happened, you can try a different FTP client like Filezilla to make sure it’s not an FTP client issue. What size is the database file? If it’s larger than 50 MB, then you will need to submit a support ticket to have the file imported into your database.

      I hope that helps to answer your question! If you require further assistance, please let us know!

      Regards,
      Arnel C.

  • Hi,

    I face similar problem. I could transfer the file in Binary Mode. Btw, the file contain Mixed characters of Greek and English.

    Once the file is receive, how we need to decode the file from Binary. Because, the data look junk in the Linux server where I send this file.

     

    • Hello Vinoth,

      Thank you for contacting us. Can you provide a link to the site for testing?

      Best Regards,
      John-Paul

  • Hi John,

     

    Please find my script below.

     

    TODAY=`date +%Y%m%d`

    SCRIPT_CONFIG=~/script-config

    LOGARCHIVE=/logArchive

    ROTATE_LOG=$LOGARCHIVE/rotate.log

     

    for SERVER in `cat $SCRIPT_CONFIG/log-rotate.properties`;do

            echo

            SERVERNAME=`echo $SERVER | awk -F ‘|’ ‘{ print $1 }’`

            DOMAIN=`echo $SERVER | awk -F ‘|’ ‘{ print $2 }’`

            RMTLOGFILE=`echo $SERVER | awk -F ‘|’ ‘{ print $3 }’`

            LOGFILE=`echo $SERVER | awk -F ‘|’ ‘{ print $3 }’`

     

            if [ `ls $LOGARCHIVE/$SERVERNAME/$DOMAIN/ | grep $LOGFILE.$TODAY | wc -l` > 1 ];then

               NUMFILES=`ls $LOGARCHIVE/$SERVERNAME/$DOMAIN/ | grep “$LOGFILE.$TODAY” | wc -l`

               LOGFILE=$LOGFILE.$TODAY.$(($NUMFILES + 1))

            else

               LOGFILE=$LOGFILE.$TODAY

            fi

     

            echo “`date` : scp -p weblogic@$SERVERNAME:/home/weblogic/$DOMAIN/$RMTLOGFILE $LOGARCHIVE/downloadtmp/$LOGFILE” >> $ROTATE_LOG

            scp -p weblogic@$SERVERNAME:/home/weblogic/$DOMAIN/$RMTLOGFILE $LOGARCHIVE/downloadtmp/$LOGFILE >> $ROTATE_LOG

     

            if [ $? == 0 ];then

                    ssh weblogic@$SERVERNAME cat \/dev\/null \> \/home\/weblogic\/$DOMAIN\/$RMTLOGFILE

                    mv $LOGARCHIVE/downloadtmp/$LOGFILE $LOGARCHIVE/$SERVERNAME/$DOMAIN/$LOGFILE

                    #echo “mv $LOGARCHIVE/downloadtmp/$LOGFILE $LOGARCHIVE/$SERVERNAME/$DOMAIN/$LOGFILE”

                    gzip $LOGARCHIVE/$SERVERNAME/$DOMAIN/$LOGFILE

            else

                    log “Failed to download $SERVERNAME:/home/weblogic/$DOMAIN/$RMTLOGFILE”

            fi

            echo

    done

     

    • Hello sree,

      Thank you for contacting us. We spent some time looking into this, and recommend using rsync command instead.

      Thank you,
      John-Paul

  • I have a shell script that does logarchive from remote build linux server on all the production linux servers .  This script runs nightly.  Duirng this process, the log files on the production linux servers are changing to binary format and since this is production environment, cannot restart the servers.  Is there a way to fix this.  The line that basically does the logArchive in my script is below.

    ssh weblogic@$SERVERNAME cat \/dev\/null \> \/home\/weblogic\/$DOMAIN\/$RMTLOGFILE

    I can provide the entire script for reference.

     

     

    • Hello sree,

      Thank you for contacting us. Yes, can you provide the entire script for reference? This will help us narrow down the cause of the problems.

      Thank you,
      John-Paul

  • Yes I tried setting it to Binary but no luck the files keep on corrupting when downloaded intermittently.

    Is there any other settings that can be tried out

     

    Regards

    Sam

     

    • Hello Sameer,

      The reason for turning ON the logging is to see if something is happening during the transfer. Have you checked the log file to see if any messages or errors are being recorded? You need to go to EDIT > Settings and then select LOGGING to see the location of your log file. The issue is most likely dropped data causing the file to become corrupt – but we would need know if it’s happening to see if we can do anything about it. The log file helps us to identify possible issues. Please let us know if the log file caught anything.

      regards,
      Arnel C.

  • Hi,

    I am also facing the same issue even after the settings are made to Binary the file when downloaded and unzipped gets corrupt I have tried it multiple times assuming the file didnt download properly but its still keeps on getting corrupt.

    Is there any other setting that needs to be checked I have verified the filesize when uploaded is the same and after download also the file size is same. But when unzipped the file it is found corrupted.

     

    Regards

    Sam

    • Hello Sam,

      Have you tried the instructions above for switching on the logging in FileZilla?

      Kindest Regards,
      Scott M

  • Hi,

    I have a couple of 1GB .mov file which after FTP download are damaged. Each stopps playing in the middle of the file.

    Any advise how to fix it? Is it FTP settings which is causing it?

    Thanks,
    megan

     

  • Although transfer setting in Filezilla, Winscp and MobaXterm were set to transfer a .mp4 file as binary to a remote server, and the file was transferred, it seemed to have been converted to ASCII.

    How do I prevent this?

    Could it be the setup of the remote server.

     

    • Hello Philip,

      Thank you for your question. We are happy to help, but will need some additional information.

      Are you getting any errors?

      You can enable logging in FileZilla, which can provide more details.

      1. Open fileZilla
      2. Go to Edit–>Settings
      3. In the File editing section, click Logging
      4. Check the Log to file box, and enter a file name.

      You may want to try zipping the file first (to protect it from corruption), then uploading it via FTP. Then unzipping it once it is uploaded.

      If you have any further questions, feel free to post them below.
      Thank you,
      John-Paul

    • Hello Philip,

      Thank you for your question. Transferring a file via binary, or ASCII should not convert the file in any way. It is just the means of transferring.

      For example, it is like using Fedex, instead of UPS for shipping. In the end the package will be the same.

      How are you viewing the file? Can you provide a link to it?

      Thank you,
      John-Paul

Leave a Reply