How to Upload Multiple Files in Java

How to Upload Multiple Files in Java

package com.mp.ws;

/**
*
* @author nitinaggarwal
*
*/
public interface IFileUpload {

public byte[] get1File(String name);

public byte[][] getMulitpleFiles(String names[]);

public String getXmlFile(String name);

}

package com.mp.ws;

/**
*
* @author nitinaggarwal
*
*/
public class FileUpload implements IFileUpload {

public byte[] get1File(String name) {
byte data[] = null;

FileReader fr = new FileReader();
try {
data = fr.readBinFilePath(name);
} catch (Exception e) {
e.printStackTrace();
}

return data;
}

public String getXmlFile(String name) {
String data = null;
FileReader fr = new FileReader();
try {
data = fr.readTextFile(name);
} catch (Exception e) {
e.printStackTrace();
}
return data;
}

public byte[][] getMulitpleFiles(String[] fnames) {

byte[][] data = new byte[fnames.length][];
for (int i = 0; i < fnames.length; i++) {
FileReader fr = new FileReader();
try {
data[i] = fr.readBinFilePath(fnames[i]);

System.out.println("abc" + data[i]);
} catch (Exception e) {
e.printStackTrace();
}
}
return data;
}

}

package com.mp.ws;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;

/**
*
* @author nitinaggarwal
*
*/
public class FileReader {

public String readTextFile(final String name) throws Exception {
StringBuffer xmlFromFile = new StringBuffer();
InputStream instr = null;
//instr = getFilePath2(name);

instr = new FileInputStream(name);

if (instr == null)
throw new FileNotFoundException();
InputStreamReader streamreader = null;

try {

streamreader = new InputStreamReader(instr);
int x = 0;
x = streamreader.read();

while (x != -1) {
xmlFromFile.append((char) x);
x = streamreader.read();

}

} catch (Exception e) {

System.out.println("Exception " + e.getMessage());
throw e;

} finally {
streamreader.close();

}

return xmlFromFile.toString();

}

public byte[] readBinFileFromClassPath(final String name) throws Exception {

byte bytearray[] = null;
FileInputStream fileinputstream = null;
try {

fileinputstream = new FileInputStream(getFilePath(name));
int numberBytes = fileinputstream.available();
bytearray = new byte[numberBytes];
fileinputstream.read(bytearray);

} catch (Exception e) {
System.out.println("Exception " + e.getMessage());
throw e;

} finally {
if (fileinputstream != null)
fileinputstream.close();
}

return bytearray;
}

public byte[] readBinFilePath(final String name) throws Exception {

byte bytearray[] = null;
FileInputStream fileinputstream = null;
try {

fileinputstream = new FileInputStream(name);
int numberBytes = fileinputstream.available();
bytearray = new byte[numberBytes];
fileinputstream.read(bytearray);

} catch (Exception e) {
System.out.println("Exception " + e.getMessage());
throw e;

} finally {
if (fileinputstream != null)
fileinputstream.close();
}

return bytearray;
}

public void writeBinFileToPath(String name, byte data[]) throws IOException {

FileOutputStream fileoutputstream = new FileOutputStream(name);

try {
fileoutputstream.write(data);

} catch (IOException e) {
System.out.println(e.getMessage());

} finally {
if (fileoutputstream != null)
fileoutputstream.close();
data = null;
}

}

private InputStream getFilePath2(String filename) {
return this.getClass().getClassLoader().getResourceAsStream(filename);

}

private String getFilePath(String filename) throws FileNotFoundException {
String path = this.getClass().getClassLoader().getResource(filename)
.getPath();
if ("".equals(path))
throw new FileNotFoundException();
return path;

}

}

package com.mp.ws;

/**
*
* @author nitinaggarwal
*
*/
@javax.jws.WebService(targetNamespace = "http://ws.mp.com/", serviceName = "FileUploadService", portName = "FileUploadPort")
public class FileUploadDelegate {

com.mp.ws.FileUpload fileUpload = new com.mp.ws.FileUpload();

public byte[] get1File(String name) {
return fileUpload.get1File(name);
}

public byte[][] getMulitpleFiles(String[] fnames) {
return fileUpload.getMulitpleFiles(fnames);
}

public String getXmlFile(String name) {
return fileUpload.getXmlFile(name);
}

}

package com.mp.ws;
/**
*
* @author nitinaggarwal
*
*/
public class FileUploadTester {

public static void main(String[] args) {
FileUpload fu = new FileUpload();
String fnames[]= {"c:/uploadme.doc","c:/uploadme.doc","c:/uploadme.doc"};

byte[][] data = fu.getMulitpleFiles(fnames);

}
}

2 Responses so far.

  1. sai kumar says:

    thanks for this but i expecting like image file should be upload with single upload click and select multiple files are images and they should be upload to database or store in a floder.

  2. Otwbbdey says:

    TimlDK comment4 ,