【发布时间】:2014-04-03 16:19:34
【问题描述】:
我想从 php 客户端传输 Java 服务器的套接字文件。
Java 中的 Java 做得很好。
但是php无法将文件传输到java服务器。
我需要从 java 代码转换为 php 代码或 我想知道通过其他方法从php客户端传输java服务器的套接字文件。 请帮我... 谢谢!!!
-
Java 客户端代码。
File file = new File(fileName); Socket socket = new Socket("localhost", 20225); ObjectInputStream ois = new ObjectInputStream(socket.getInputStream()); ObjectOutputStream oos = new ObjectOutputStream(socket.getOutputStream()); oos.writeObject(file.getName()); FileInputStream fis = new FileInputStream(file); byte [] buffer = new byte[100]; Integer bytesRead = 0; while ((bytesRead = fis.read(buffer)) > 0) { oos.writeObject(bytesRead); oos.writeObject(Arrays.copyOf(buffer, buffer.length)); } oos.close(); ois.close(); -
Java 服务器代码
ObjectOutputStream oos = new ObjectOutputStream(socket.getOutputStream()); ObjectInputStream ois = new ObjectInputStream(socket.getInputStream()); FileOutputStream fos = null; byte [] buffer = new byte[BUFFER_SIZE]; String filename = null; Map<String, Object> retMap = new HashMap<String, Object>(); // 1. Read file name. Object obj = ois.readObject(); try { filename = Config.getInstance().getProperties("dispatcher.policy") + obj; fos = new FileOutputStream(new File(filename)); // 2. Read file to the end. Integer bytesRead = 0; do { obj = ois.readObject(); bytesRead = (Integer)obj; obj = ois.readObject(); buffer = (byte[])obj; // 3. Write data to output file. fos.write(buffer, 0, bytesRead); } while (bytesRead == BUFFER_SIZE); logger.info("File transfer success : {} ", filename ); fos.close(); }catch(Exception e){ } oos.writeObject("OK"); ois.close(); oos.close();
【问题讨论】: