que mas amigos como les va, pues miren tengo un problemita, necesito por medio de una aplicacion de escritorio subir un archivo de cualquier clase, osea texto, imagen, zip, etc, de cualquier tipo, el caso es que ya tengo algo, cuando subo un archivo de tipo text lo sube bien y todo funciona bien, pero cando subo una imagen o un zip, osea uno que no es tipo text, no lo logro subir bien, lo que necesito es sacar los datos del archivo para la creacion del nuevo, osea el content, conten-type y cosas asi, luego yo lo mando pa el servidor, osea mando esos datos y el mismo me crea el archivo pero tengo que mandar bien los datos, entonces miren lo que tengo que estoy casi seguro que algo esta mal, pero como nunca habia hecho esto y solo encuentro respuesta con servidores locales o usando libreria externas, que no puedo usar, miren esto es lo que tengo, este es el metodo de un boton cuando es presionado, ademas de esto me baso en la carpeta seleccionada de un jtree, pero eso no es importante ahora, lo importante es sacar los datos del archivo que selecciono.
Código:
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
TreePath parentPath = this.jTree1.getSelectionPath();
if(parentPath != null){
//System.out.println(parentPath.toString());
JFileChooser fileChooser = new JFileChooser();
int returnVal = fileChooser.showOpenDialog(null);
if (returnVal == JFileChooser.APPROVE_OPTION) {
File file = fileChooser.getSelectedFile();
FileInputStream fis = null;
BufferedInputStream bis = null;
DataInputStream dis = null;
String cont="";
try {
fis = new FileInputStream(file);
// Here BufferedInputStream is added for fast reading.
bis = new BufferedInputStream(fis);
dis = new DataInputStream(bis);
// dis.available() returns 0 if the file does not have more lines.
while (dis.available() != 0) {
// this statement reads the line from the file and print it to
// the console.
cont += dis.readLine();
}
// dispose all the resources after using them.
fis.close();
bis.close();
dis.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
//Nombre del archivo
String name = file.getName());
//Content del archivo
cont ;
//Conten-Type
new MimetypesFileTypeMap().getContentType(file);
} else {
System.out.println("File access cancelled by user.");
}
} else//AQUIIIIIIIIIIIIIIIIIIIIIIIIIIII
JOptionPane.showMessageDialog(null,"Debe escoger la carpeta del arbol donde se subira el archivo");
}
tal vez vean algunos errores de como pongo el codigo, pero eso no es lo importante, lo importante ahora mismo es que ven esas lineas que estan debajo del ultimo catch en donde pongo los 3 datos que estraigo del archivo que tomo por medio del JFileChooser, entonces luego que le puedo hacer al content para que me sirva, por que siento que le hace falta algo, el content lo necesito en texto pero como en php me imagino qeu aca se le debe aplicar algo para que ese content vaya bien parseado, en php lo hago asi
Código PHP:
$file = fopen($_FILES['archivoup']['tmp_name'],'r');
$filesize = filesize($_FILES['archivoup']['tmp_name']);
$filecont = fread($file,$filesize);
$filename = urldecode($_FILES['archivoup']['name']);
$filecontype = $_FILES['archivoup']['type'];
y todo sale bien, pero en java no, subo la foto y cuando la voy a usar no me la previsualiza, entonces pienso que el content de la foto le hace falta algo o no se, ayudenme por favor, ademas si alguien tiene una mejor forma de obtener el conten type se lo agradeceria por que de la forma como lo hago me soporta pocos tipos de archivo y necesito mas, los archivos ofimaticos no me los soporta y no me da el tipo de esos archivos, los coge como binarios y asi con muchos mas, por ultimo si alguien a trabajado con CMIS me seria de mucha ayuda, pero primero lo de subir el archivo, gracias que esten bien