ฉันมีปัญหากับแอปพลิเคชัน Spring Boot เมื่อฉันอัปโหลดไฟล์ไปยังเซิร์ฟเวอร์ ftp ไฟล์จะเปลี่ยนรูปแบบไปในทางใดทางหนึ่ง ฉันไม่สามารถเปิดภาพได้อีกต่อไป
ฉันอัปโหลดผ่าน thymeleaf
ในคอนโทรลเลอร์ ฉันใช้บริการอัปโหลด`ด้วยวิธีด้านล่าง:
public void fileUpload(MultipartFile file) {
try {
FtpClient ftp = new FtpClient(ftpHost, ftpPort, ftpUser, ftpPassword);
ftp.open();
String tmpdir = System.getProperty("java.io.tmpdir");
File physicalFile = new File(tmpdir+file.getOriginalFilename());
file.transferTo(physicalFile);
ftp.putFileToPath(physicalFile, file.getOriginalFilename());
ftp.close();
} catch (IOException e) {
e.printStackTrace();
}
}
และนี่คือวิธี FtpClient ของฉัน:
public void open() throws IOException {
ftp = new FTPClient();
ftp.addProtocolCommandListener(new PrintCommandListener(new PrintWriter(System.out)));
ftp.connect(server, port);
int reply = ftp.getReplyCode();
if (!FTPReply.isPositiveCompletion(reply)) {
ftp.disconnect();
throw new IOException("Exception in connecting to FTP Server");
}
ftp.login(user, password);
}
public void close() throws IOException {
ftp.disconnect();
}
public void putFileToPath(File file, String path) throws IOException {
ftp.storeFile(path, new FileInputStream(file));
}
ทุกอย่างใช้งานได้ ไฟล์ปรากฏบนเซิร์ฟเวอร์ และมีน้ำหนักเท่ากัน
... แต่ฉันไม่สามารถเปิดมันได้
โปรแกรมกราฟิกใดๆ ที่ฉันพยายามใช้เปิดก็บอกว่าเป็นรูปแบบไฟล์ที่ไม่ถูกต้อง ...
มีความคิดอะไรบ้าง?
setFileTypd
stackoverflow.com/questions/44194256/ - person Luuk   schedule 06.10.2020filetype
คุณสามารถเปลี่ยนจากการโอน ASCII เป็น BINARY คุณต้องถ่ายโอนไฟล์นี้แบบไบนารี่เพื่อให้มีขนาดเท่าเดิม (ไม่รู้ว่าน้ำหนักเปลี่ยนไปหรือเปล่า ????) - person Luuk   schedule 06.10.2020