上海建设网站找哪家wordpress判断语句
2026/4/18 9:20:48 网站建设 项目流程
上海建设网站找哪家,wordpress判断语句,如何建设景区旅游网站,用php做网站不用框架1. 问题现象在开发基于 Java 的 FTP 文件下载功能时#xff0c;通过 curl 调用下载接口#xff0c;程序抛出异常#xff0c;且 FTP 服务端返回错误指令。后端异常日志#xff1a;PASV 227 Entering Passive Mode (10,151,161,108,33,51) RETR /1.jpg 150 Opening BINARY mo…1. 问题现象在开发基于 Java 的 FTP 文件下载功能时通过curl调用下载接口程序抛出异常且 FTP 服务端返回错误指令。后端异常日志PASV 227 Entering Passive Mode (10,151,161,108,33,51) RETR /1.jpg 150 Opening BINARY mode data connection for /1.jpg (385621 bytes). QUIT 426 Failure writing network stream. Caused by: org.apache.commons.net.io.CopyStreamException: IOException caught while copying. at org.apache.commons.net.io.Util.copyStream(Util.java:280) ~[commons-net-3.9.0.jar!/:3.9.0] at org.apache.commons.net.ftp.FTPClient._retrieveFile(FTPClient.java:893) ~[commons-net-3.9.0.jar!/:3.9.0] at org.apache.commons.net.ftp.FTPClient.retrieveFile(FTPClient.java:2819) ~[commons-net-3.9.0.jar!/:3.9.0] at com.example.demo.YxSftpUtils.downloadFtp(YxSftpUtils.java:85) ~[classes!/:0.0.1-SNAPSHOT] ... 52 common frames omitted Suppressed: org.apache.catalina.connector.ClientAbortException: java.io.IOException: 断开的管道 at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:351) ~[tomcat-embed-core-9.0.41.jar!/:9.0.41] at org.apache.catalina.connector.OutputBuffer.flushByteBuffer(OutputBuffer.java:776) ~[tomcat-embed-core-9.0.41.jar!/:9.0.41] at org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:298) ~[tomcat-embed-core-9.0.41.jar!/:9.0.41] at org.apache.catalina.connector.OutputBuffer.close(OutputBuffer.java:251) ~[tomcat-embed-core-9.0.41.jar!/:9.0.41] at org.apache.catalina.connector.CoyoteOutputStream.close(CoyoteOutputStream.java:157) ~[tomcat-embed-core-9.0.41.jar!/:9.0.41] at com.example.demo.YxSftpUtils.downloadFtp(YxSftpUtils.java:93) ~[classes!/:0.0.1-SNAPSHOT] ... 52 common frames omitted Caused by: java.io.IOException: 断开的管道 at sun.nio.ch.FileDispatcherImpl.write0(Native Method) at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:47) at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:93) at sun.nio.ch.IOUtil.write(IOUtil.java:65) at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:469) at org.apache.tomcat.util.net.NioChannel.write(NioChannel.java:138) at org.apache.tomcat.util.net.NioBlockingSelector.write(NioBlockingSelector.java:101) at org.apache.tomcat.util.net.NioSelectorPool.write(NioSelectorPool.java:152) at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.doWrite(NioEndpoint.java:1253) at org.apache.tomcat.util.net.SocketWrapperBase.doWrite(SocketWrapperBase.java:764) at org.apache.tomcat.util.net.SocketWrapperBase.writeBlocking(SocketWrapperBase.java:584) at org.apache.tomcat.util.net.SocketWrapperBase.write(SocketWrapperBase.java:528) at org.apache.coyote.http11.Http11OutputBuffer$SocketOutputBuffer.doWrite(Http11OutputBuffer.java:546) at org.apache.coyote.http11.filters.ChunkedOutputFilter.doWrite(ChunkedOutputFilter.java:110) at org.apache.coyote.http11.Http11OutputBuffer.doWrite(Http11OutputBuffer.java:193) at org.apache.coyote.Response.doWrite(Response.java:601) at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:339) ... 57 common frames omitted2. 原因分析核心根源通过对curl -v详细日志的分析发现该问题的根源不在于后端 Java 代码直接使用的FTPClient.retrieveFile而在于客户端curl的默认行为。链路推导curl 安全保护机制当使用curl请求二进制文件如.jpg、.zip且未指定输出文件时curl会默认尝试将二进制内容输出到终端屏幕。连接主动中断为了防止二进制乱码破坏终端显示curl在检测到大量不可读字符时会主动中断 HTTP 连接。Broken pipe 产生Java 后端正通过OutputStream持续写入数据由于前端curl已经关闭了 Socket 管道后端写入失败抛出ClientAbortException。FTP 异常收尾Java 代码触发finally块中的ftpClient.disconnect()向 FTP 服务器发送QUIT命令。FTP 426 报错由于数据传输中途被QUIT强行终止FTP 服务器记录下426 Failure writing network stream写入网络流失败。3. 解决方案在执行curl命令时加上--output参数将数据流导向文件而非屏幕。# 正确的调用方式 curl -v --location http://ip:port/ftpTest --output test_result.jpg

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询