如何解决VS Code SFTP上传后FileZilla下载文件的多余空行问题
解决SFTP上传后FileZilla下载出现多余空行的问题
这个问题本质是换行符格式不兼容:Windows系统默认用CRLF(回车+换行)作为换行符,而Linux服务器使用LF(仅换行),传输过程中换行符被错误转换,导致文件打开后出现大量多余空行。以下是具体解决方法:
1. 配置VS Code的SFTP扩展,强制使用LF上传
打开项目的.vscode/sftp.json配置文件,添加或修改uploadOptions字段,指定上传时统一使用LF换行符:
"uploadOptions": { "lineEnding": "lf" }
也可以临时调整单个文件:在VS Code右下角点击当前文件的换行符标识(比如显示CRLF),选择LF后保存再上传。
2. 修正FileZilla的传输模式
- 打开FileZilla,依次点击【编辑】→【设置】→【文件传输】→【ASCII/二进制】
- 确保PHP等代码类文件被归类为ASCII传输模式,或者勾选「自动检测文件类型并使用合适的传输模式」
- 传输单个文件时,右键选择【传输类型】→【ASCII】,避免二进制模式破坏换行符结构。
3. 统一本地VS Code的默认换行符
打开VS Code设置(快捷键Ctrl+,),搜索files.eol,将值设置为\n(即LF),让本地新建/编辑的文件默认使用Linux服务器兼容的换行符,从根源避免转换问题。
问题示例对比
上传前的代码:
<?php class ControllerApiCart extends Controller { public function add() { $this->load->language('api/cart'); $json = array(); if (!isset($this->session->data['api_id'])) { $json['error']['warning'] = $this->language->get('error_permission'); }
下载后出现多余空行的代码:
<?php class ControllerApiCart extends Controller { public function add() { $this->load->language('api/cart'); $json = array(); if (!isset($this->session->data['api_id'])) { $json['error']['warning'] = $this->language->get('error_permission'); }
内容的提问来源于stack exchange,提问作者bobi
相关产品推荐
相关产品推荐

