JakartaFtpWrapper를 사용하여 클라이언트 Java 응용 프로그램에서 내 서버로 파일을 업로드했습니다 (백업용).JakartaFtpWrapper를 사용하여 Java 업로드 jpg - 파일을 읽을 수 없도록 만듭니다.
업로드 된 파일은 텍스트 파일, png 파일 및 jpg입니다.
로컬 컴퓨터에서 유효한 jpg 파일 (서버에 FTPd가 있던 곳)에서 어떻게 든 읽을 수 없게됩니다 (손상된 파일). 이미지 파일 크기가 원본 파일 크기와 비슷하지만 결함이 있습니다. 는 FTP 코드는 정직
public static void writeJpeg(BufferedImage bfImg, String fileName, float quality) throws IOException{
FileImageOutputStream output = null;
try{
Iterator iter = ImageIO.getImageWritersByFormatName("jpeg");
ImageWriter writer = (ImageWriter)iter.next();
ImageWriteParam iwp = writer.getDefaultWriteParam();
iwp.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);
iwp.setCompressionQuality(quality); // an integer between 0 and 1
File file = new File(fileName);
output = new FileImageOutputStream(file);
writer.setOutput(output);
IIOImage image = new IIOImage(bfImg, null, null);
writer.write(null, image, iwp);
}
finally{
if (output != null){
output.close();
}
}
: 여기
내가 로컬 디스크에 JPG를 작성하는 사용하고 코드의JakartaFtpWrapper ftpClient = new JakartaFtpWrapper();
ftpClient.connectAndLogin(FTP_URL, FTP_USER, FTP_PASSWORD);
ftpClient.setPassiveMode(true);
File[] imageFiles = folder.listFiles()
for (int j=0; j<imageFiles.length; j++){
File imageFile = imageFiles[j];
if (imageFile != null && imageFile.isFile() && (FileUtils.getFileSuffix(imageFile).equals("jpg") || FileUtils.getFileSuffix(imageFile).equals("png"))){ // upload only image files
ftpClient.uploadFile(imageFile.getAbsolutePath(), imageFile.getName());
}
}
감사합니다, 는
왜 업로드 된 이미지를 처리하기 위해 Java 2D API를 사용하고 있는지 물어볼 수 있습니까? 디스크에 저장하기 전에 업로드 된 이미지를 수정 하시겠습니까? 이 코드는 이미지에 흥미로운 것을하지 않습니다. 이미지를 올리면 보통 'InputStream'의 맛을보아야합니다. 일반적으로'FileOutputStream'과 같이'OutputStream'에 직접 쓸 수 있습니다. 이를 위해서는 Java 2D가 필요하지 않습니다. – BalusC
코드가 배치 된 방식도 나에게 혼란 스러웠다 : 맨 위 섹션은 파일이 어떻게 인코딩되는지 보여주고 (우리는 실제로 신경 쓰지 않는다), 아래 부분은 업로드 방법을 보여준다. –
맞습니다. 관련이 없습니다. 그러나이 질문을 게시 할 때 jpeg가 인코딩되는 방식이 관련되어있을 수 있다는 의구심이있었습니다. – Ranch