Creo que ya habian hecho en algun lado esta pregunta.
bueno primero que nada
Cliente:
no importa si desde un cliente el usuario hace algo la peticion viaja al server y en el server escribes el archivo y lo guardas en un directorio del server donde tu elijas.
server:
En el server usas un mecanismo para leer y escribir. como este.
Código PHP:
import java.io.*;
class FileStreamsTest {
public static void main(String[] args) {
try {
File inputFile = new File("original.txt");
File outputFile = new File("outagain.txt");
//Creamos entradas y salidas por cónsola
FileInputStream fis = new FileInputStream(inputFile);
FileOutputStream fos = new FileOutputStream(outputFile);
int c;
//Mientras el valor del método read() del objeto fis sea != -1 --> ejecuta metodo
//write del objeto fos
// traduciendo: mientras no termine de leer el fichero
// inputfile, copialo ( y si no existe lo crea y si existe lo sobreescribe)
// en el fichero outputfile
while ((c = fis.read()) != -1) {
//lee byte a byte de fis y lo vuelca en fos
fos.write(c);
}
// en realidad trabaja entre la ram(FileInputStream y FileOutputStream) y el HD
// (inputFile , outputFile)
fis.close();
fos.close();//importante , no dejarse abierto canales
} catch (FileNotFoundException e) {
//la excepción provendria de no encontrar original.txt
// originada en la linea FileInputStream fis = new FileInputStream(inputFile);
// java exige recoger la excepcion al usar este canal ( try{..} catch{..} )
// el fichero de salida no genera excepción , ya que se va a crear o sobreescribir
System.err.println("FileStreamsTest: " + e);
} catch (IOException e) {
// excepción más genérica de entrada / salida
System.err.println("FileStreamsTest: " + e);
}
}
}