Запретить Filezilla вставлять пустые строки в текстовые файлы

Запретить Filezilla вставлять пустые строки в текстовые файлы

Часто FileZilla загружает файл .cssили с разных удаленных хостов .phpи вставляет пустые строки между существующими строками. Это разрушает хорошее форматирование.

ПК = Windows 10 Pro 64-бит.

Как это предотвратить?

решение1

Мой ответ против ответа OP

Я пишу этот ответ, когда решение уже найдено OP. Цель моего ответа — объяснить, в чем была проблема, чтобы помочь будущим пользователям с похожими проблемами.Существующий ответ дает решение, но не понимание. Вот ответ:

Решением стало изменение типа передачи с «Авто» на «Двоичный».

Меню передачи > Тип передачи > двоичный


Предыстория проблемы: ASCII против двоичного кода

Как я и подозревал (в своем комментарии к вопросу), проблема была в несоответствии перевода окончаний строк.ФайлЗилла Викиохватывает тему. Это соответствующие фрагменты (все последующие цитаты взяты оттуда, некоторые фразы дополнительноподчеркнулмной):

Файлы могут передаваться между FTP-клиентом и сервером разными способами. Спецификация FTP (RFC 959) называет их «типом данных» (...)

Различают следующие типы данных:

  • ASCII
  • двоичный
  • (...)

Тип ASCII используется для передачи текстовых файлов.Проблема с текстовыми файлами заключается в том, что разные платформы имеют разные типы окончаний строк. Например, Microsoft Windows использует пару CR+LF (возврат каретки и перевод строки), в то время как Unix(-подобные) системы, включая Linux и MacOS X, используют только LF, а традиционные системы MacOS (MacOS 9 или старше) используют только CR.Целью шрифта ASCII является обеспечение правильного изменения окончаний строк в соответствии с тем, что предусмотрено на платформе.Согласно спецификации FTP, файлы ASCII всегда передаются с использованием пары CR+LF в качестве окончания строки.

Поэтому в случае передачи файла от клиента к серверу клиент должен убедиться, что используется CR+LF. (...)

То же самое происходит, когда файл загружается с сервера на клиент: сервер проверяет, что строки заканчиваются на CR+LF при отправке файла, а затем клиент удаляет все ненужное в качестве окончания строки на своей платформе.

(...)

По сравнению с типом ASCII, двоичный тип проще: файл просто передается как есть, и преобразование концов строк не выполняется.


Что случилось?

Один из примеров, когда что-то идет не так, соответствует случаю OP. Я думаю, вот что произошло:

Текстовый файл Windows (CR+LF) был загружен на FTP-сервер на базе Unix в двоичном формате. Если этот файл загружен в ASCII, FTP-сервер преобразует LF в CR+LF, поэтому окончания строк CR+LF будут преобразованы в CR+CR+LF. FileZilla на Windows ожидает, что файл уже использует кодировку строк CR+LF (согласно спецификации FTP), поэтому дальнейший перевод не выполняется.В зависимости от используемого текстового редактора строки теперь могут разделяться дополнительной пустой строкой.


Решение

Решение ОП — изменить тип передачи сАвтокДвоичныйначиная сПередачаменю.В статье приводятся и другие способы его изменения:

С помощью FileZilla вы можете изменить тип передаваемых данных тремя способами:

  • В настройках FileZilla
  • В главном меню подПередача->Тип передачи
  • Щелкните правой кнопкой мыши по индикатору типа данных в строке состояния FileZilla.

Изготовлениедвоичныйопция по умолчанию в Windows может привести к ситуации, когда .cssили .phpили другой текстовый файл, загруженный из не-Windows системы, будет сохранен с одним LF или CR вместо специфичных для Windows CR+LF. Это может не быть проблемой, как объясняется в другом фрагменте:

Поэтому, если вы не уверены, что использовать, всегда выбирайте двоичный тип.В настоящее время почти все (хорошие) текстовые редакторы могут обрабатывать три возможных окончания строк, а другие текстовые файлы, например файлы скриптовых языков, таких как Perl или PHP, а также файлы XML (почти) всегда работают с любым окончанием строк.

Во многих случаях это решение может оказаться наилучшим, поскольку всегда можно изменить тип перевода.


Альтернативное решение

Заголовок вопроса предполагает, что дополнительные строки были созданы FileZilla OP. Это неправда, не было никаких проблем с конфигурацией FileZilla OP. Эта проблема возникает на стороне сервера, где есть текстовые файлы с окончаниями строк, не соответствующими ОС сервера.Указанное выше решение — это всего лишь исправление проблемы на стороне сервера на стороне клиента..

Альтернативное решение — исправить файлы (их окончания строк) на стороне сервера., поэтому передача ASCII работает так, как и должно быть изначально. Очевидно, что это правильное решение, и его можно назвать лучшим решением — в некотором смысле: потому что оно решает корень проблемы. Рассмотрите это решение, если вы администрируете сервер или можете связаться с администратором, или у вас есть права на перезапись плохо отформатированного файла.Это также принесет пользу другим пользователям.

Даже если вы обратитесь к администратору, я думаю, что всегда быстрее изменить тип передачи и загрузить нужный файл, чем ждать, пока изменения будут внесены на стороне сервера.

решение2

Решением стало изменение типа передачи с «Авто» на «Двоичный».

Меню передачи > Тип передачи > двоичный

Связанный контент