मैं .doc
, .pdf
, .txt
, और हाइबरनेट, जेएसएफ और माइस्क्ल का उपयोग करके अपने डेटाबेस में छवि फ़ाइलों को सहेजने की कोशिश कर रहा हूं।जावा का उपयोग कर mysql डेटाबेस में दस्तावेज़, पीडीएफ, और छवि फ़ाइलों को कैसे सहेजना है?
मैंने बीएलओबी प्रकार की फ़ाइल को सहेजने के लिए एक कॉलम बनाया है। अगर मैं .txt
प्रकार सहेज रहा हूं तो फ़ाइलें सही ढंग से सहेजी जाती हैं।
यदि मैं किसी अन्य प्रारूप की फ़ाइल को सहेजने की कोशिश कर रहा हूं तो मुझे अपवाद मिल रहा है। मेरे बीन में मैंने एक फ़ील्ड नाम बनाया है: byte[] file;
मैं बिना किसी अपवाद के इसे सही तरीके से कैसे सहेज सकता हूं? क्या मुझे mysql कॉलम के लिए डेटाटाइप बदलने या जावा क्लास के लिए एक अलग फ़ील्ड का उपयोग करने की आवश्यकता है?
(BalusC के जवाब में)
इस कोड को जो मैं फ़ाइल लिखने के लिए उपयोग कर रहा हूँ है। मैं fileInputStream
का उपयोग कर रहा हूं और फिर हाइबरनेट फ्रेमवर्क का उपयोग कर फ़ाइल को सहेज रहा हूं।
Iterator iter = items.iterator();
while (iter.hasNext()) {
FileItem item = (FileItem) iter.next();
if (item.isFormField()) {
String name = item.getFieldName();
String value = item.getString();
} else {
String fieldName = item.getFieldName();
String fileName = item.getName();
String contentType = item.getContentType();
boolean isInMemory = item.isInMemory();
long sizeInBytes = item.getSize();
byte[] fileInBytes=item.get();
try {
File uploadedFile = new File("/home/db/webApp", fileName);
uploadedFile.createNewFile();
FileInputStream fileInputStream = new FileInputStream(uploadedFile);
//convert file into array of bytes
fileInputStream.read(fileInBytes);
fileInputStream.close();
} catch (Exception e) {
e.printStackTrace();
}
UploadedFile object= new UploadedFile();
object.setFile(fileInBytes);
uploadedObject.setFileName(fileName);
session.save(object);
UploadedFile
JSF कामयाब सेम है:
public class UploadedFile{
private String fileName;
private byte[] file;
/**
* @return the fileName
*/
public String getFileName() {
return fileName;
}
/**
* @param fileName the fileName to set
*/
public void setFileName(String fileName) {
this.fileName = fileName;
}
/**
* @return the file
*/
public byte[] getFile() {
return file;
}
/**
* @param file the file to set
*/
public void setFile(byte[] file) {
this.file = file;
}
}
और मेरे डेटाबेस तालिका निम्नलिखित है संरचना:
Create UploadFile(FILE_NAME` VARCHAR(1000) NOT NULL,
`FILE` BLOB NOT NULL);
आपको क्या अपवाद मिलता है? – soulcheck