यह उत्तर पहले ही उत्तर दिया गया है। हाल ही में मैं बाइट सरणी ऑब्जेक्ट को multipartfile ऑब्जेक्ट में कनवर्ट करने की आवश्यकता पर काम कर रहा था। इसे प्राप्त करने के दो तरीके हैं।
दृष्टिकोण 1:
जहां FileDiskItem वस्तु का उपयोग करने के लिए इसे बनाने के लिए डिफ़ॉल्ट CommonsMultipartFile का प्रयोग करें। उदाहरण:
Approach 1:
जहां FileDiskItem वस्तु का उपयोग करने के लिए इसे बनाने के लिए डिफ़ॉल्ट CommonsMultipartFile का प्रयोग करें। उदाहरण:
FileItem fileItem = new DiskFileItem("fileData", "application/pdf",true, outputFile.getName(), 100000000, new java.io.File(System.getProperty("java.io.tmpdir")));
MultipartFile multipartFile = new CommonsMultipartFile(fileItem);
दृष्टिकोण 2:
अपने स्वयं के कस्टम बहुखण्डीय फ़ाइल वस्तु बनाएँ और multipartfile को बाइट सरणी कनवर्ट करें।
public class CustomMultipartFile implements MultipartFile {
private final byte[] fileContent;
private String fileName;
private String contentType;
private File file;
private String destPath = System.getProperty("java.io.tmpdir");
private FileOutputStream fileOutputStream;
public CustomMultipartFile(byte[] fileData, String name) {
this.fileContent = fileData;
this.fileName = name;
file = new File(destPath + fileName);
}
@Override
public void transferTo(File dest) throws IOException, IllegalStateException {
fileOutputStream = new FileOutputStream(dest);
fileOutputStream.write(fileContent);
}
public void clearOutStreams() throws IOException {
if (null != fileOutputStream) {
fileOutputStream.flush();
fileOutputStream.close();
file.deleteOnExit();
}
}
@Override
public byte[] getBytes() throws IOException {
return fileContent;
}
@Override
public InputStream getInputStream() throws IOException {
return new ByteArrayInputStream(fileContent);
}
}
यह आप कस्टममल्टीपार्टफ़ाइल ऑब्जेक्ट से ऊपर कैसे उपयोग कर सकते हैं।
String fileName = "intermediate.pdf";
CustomMultipartFile customMultipartFile = new CustomMultipartFile(bytea, fileName);
try {
customMultipartFile.transferTo(customMultipartFile.getFile());
} catch (IllegalStateException e) {
log.info("IllegalStateException : " + e);
} catch (IOException e) {
log.info("IOException : " + e);
}
इस आवश्यक पीडीएफ बना सकते हैं और स्टोर है कि में
java.io.tmpdir नाम के साथ intermediate.pdf
धन्यवाद होगा।
ठंडा ठंडा। धन्यवाद भाई। –
आपके द्वारा बहुत अच्छा समाधान दिया गया है। इस सवाल का जवाब दें और उत्तर कई लोगों के लिए उपयोगी होगा –
'हस्तांतरण में', क्या फ़ाइलऑटपुटस्ट्रीम लेखन के बाद बंद होना चाहिए? – Ascalonian