मेरे पास कोड है जो जावा में अपलोड की गई फ़ाइल को संसाधित करता है। फ़ाइल सामान्य फ़ाइल अपलोड नियंत्रण के साथ अपलोड की जाती है और फिर मैं एक बटन से निम्नलिखित जावा कोड को कॉल करता हूं (जो एक पूर्ण ताज़ा करता है - ताकि अपलोड की गई फ़ाइल सहित दस्तावेज़ सहेजा जा सके)।
public void importFile() {
facesContext = FacesContext.getCurrentInstance();
ExternalContext externalContext = facesContext.getExternalContext();
// get a handle an the uploaded file
HttpServletRequest request = (HttpServletRequest) externalContext.getRequest();
String fileUploadID = JSFUtil.findComponent("uploadFile").getClientId(FacesContext.getCurrentInstance());
UploadedFile uploadedFile = ((UploadedFile) request.getParameterMap().get(fileUploadID));
if (uploadedFile == null) {
facesContext.addMessage("messages1", new FacesMessage(FacesMessage.SEVERITY_ERROR, "No file uploaded. Use the file upload button to upload a file.", ""));
return;
}
File file = uploadedFile.getServerFile();
String fileName = uploadedFile.getClientFileName();
// Check that filename ends with .txt
if (!fileName.endsWith(".txt")) {
facesContext.addMessage("messages1", new FacesMessage(FacesMessage.SEVERITY_ERROR, "Error in uploaded file. The file must end with .txt", ""));
return;
}
try {
// Open the file
BufferedReader br;
br = new BufferedReader(new FileReader(file));
String strLine;
// Read File Line By Line
while ((strLine = br.readLine()) != null) {
// do stuff with the contents of the file
}
// Close the input stream
br.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
facesContext.addMessage("messages1", new FacesMessage(FacesMessage.SEVERITY_ERROR, "Error in uploaded file. Please check format of file and try again", ""));
return;
}
facesContext.addMessage("messages1", new FacesMessage(FacesMessage.SEVERITY_INFO, "File successfully uploaded", ""));
}
फ़ाइल वस्तु आप embedObject का उपयोग कर अन्य दस्तावेजों में फ़ाइल स्टोर कर सकते हैं पर एक संभाल के साथ: जावा कोड में आप जो कुछ भी की जाँच करता है आप (फ़ाइल नाम, फ़ाइल आकार आदि) चाहते हो सकता है। (
private UploadedFile uploadedFile;
public UploadedFile getFileUpload() {
return uploadedFile;
}
public void setFileUpload(UploadedFile to) {
this.uploadedFile = to;
}
समारोह है कि सेम डेटा प्रक्रियाओं में जैसे एक:
स्रोत
2013-06-12 20:01:47
यह बात करने का एक बहुत अच्छा तरीका है:
यहाँ ऊपर के चरणों के लिए नमूना कोड है। मैं दोहराव नियंत्रण के साथ इसका उपयोग करता हूं जहां मैं सीधे अपने जावा बीन में प्रत्येक अपलोड को संसाधित कर सकता हूं ;-) –
यह वास्तव में मेरे लिए स्पष्ट नहीं है कि आप प्रबंधित बीन में फ़ाइल अपलोड नियंत्रण को कैसे बाध्य करते हैं? –
इस तरह की http://per.lausten.dk/blog/2012/02/creating-your-first-managed-bean-for-xpages.html। मैंने जो कक्षा का उल्लेख किया है उसका उपयोग करके गेटटर और सेटर जोड़ें और अभिव्यक्ति भाषा का उपयोग कर फ़ाइल अपलोड नियंत्रण में बाध्य करें: "# {beanName.propertyName} –