春にローカルディスクに保存してFTPサーバーに画像をアップロードする方法を教えてもらえますか?同じプロジェクトワークスペースとftpサーバーでも使用できます。ローカルディスクに画像を保存せずに、春MultipartFileを使ってFTPサーバーに画像をアップロードする方法
以下は私が試したコードですか?その後、
<dependency>
<groupId>commons-net</groupId>
<artifactId>commons-net</artifactId>
<version>3.6</version>
</dependency>
と、このようなFileUploadController#handleFileUpload
何か更新:
@RequestMapping(method = RequestMethod.POST, value = "/updateprofile1", consumes = "multipart/form-data")
public String handleFileUpload(@RequestParam("file") MultipartFile file, RedirectAttributes redirectAttributes) {
FTPSClient con = getFTPConnection();
try {
con.setFileType(FTP.BINARY_FILE_TYPE);
// createDirectory(con, "test");
showServerReply(con);
System.out.println("Target directory: %s" + con.printWorkingDirectory());
con.setFileType(FTP.BINARY_FILE_TYPE);
con.enterLocalPassiveMode();
con.changeWorkingDirectory("user/user_profile");
con.enterLocalPassiveMode(); // important!
con.setFileType(FTP.BINARY_FILE_TYPE);
String fileName = currrentTime.getTimeInMillis() + "_" + file.getName()+".jpg";
boolean result = con.storeFile(fileName, file.getInputStream());
con.logout();
con.disconnect();
redirectAttributes.addFlashAttribute("message",
"You successfully uploaded " + file.getOriginalFilename() + "!");
} catch (Exception e) {
redirectAttributes.addFlashAttribute("message", "Could not upload " + file.getOriginalFilename() + "!");
}
return "You successfully uploaded " + file.getOriginalFilename() + "!";
}
public static FTPSClient getFTPConnection() {
FTPSClient ftp = new FTPSClient();
int reply;
try {
ftp.connect("1***4");
ftp.login("****", "****);
reply = ftp.getReplyCode();
if (FTPReply.isPositiveCompletion(reply)) {
for (int i = 0; i < ftp.listDirectories().length; i++) {
System.out.println(ftp.listDirectories());
}
ftp.changeWorkingDirectory("user");
showServerReply(ftp);
// LOGGER.info("-------->>> %s", ftp.printWorkingDirectory());
showServerReply(ftp);
//LOGGER.info("Connected Success");
} else {
//LOGGER.error("Connection Failed");
ftp.disconnect();
ftp = null;
}
} catch (SocketException ex) {
//LOGGER.error("Error while trying to connect to the ImageBak Repository");
ex.printStackTrace();
ftp = null;
} catch (IOException ex) {
//LOGGER.error("Error while trying to connect to the ImageBak Repository");
ex.printStackTrace();
ftp = null;
}
return ftp;
}
private static void showServerReply(FTPClient ftpClient) {
String[] replies = ftpClient.getReplyStrings();
if (replies != null && replies.length > 0) {
for (String aReply : replies) {
System.out.println("SERVER: " + aReply);
}
}
}
をあなたはこれまでに何をしようとしたのですか?あなたのコードを教えてください。私が試したコードの下に –
? –
この質問の回答として追加する代わりに、**質問**を編集してコードを追加してください。読むのがはるかに簡単です。質問のすぐ下にshare/[edit](https://stackoverflow.com/posts/45077931/edit)/フラグのリンクがあります。 –