2013-08-19 3 views
1

Мне нужно сменить этот код, чтобы он отправил каталог файлов изображений в тот момент, когда он в настоящее время отправляет только один файл, моя главная цель - попросить каталог, а затем отправить все файлы в этом каталоге (файлы изображений) на сервер я тогда нужно, чтобы показать, как много данных было отправлено код я в настоящее время является:Как отправить каталог файлов

Клиент:

package sockets; 
import java.net.*; 
import java.io.*; 

public class Client { 

    public static void main (String [] args) throws IOException { 
     int filesize=1022386; 
     int bytesRead; 
     int currentTot = 0; 
     Socket socket = new Socket("127.0.0.1",6789); 
     byte [] bytearray = new byte [filesize]; 
     InputStream is = socket.getInputStream(); 
     FileOutputStream fos = new FileOutputStream("copy.txt"); 
     BufferedOutputStream bos = new BufferedOutputStream(fos); 
     bytesRead = is.read(bytearray,0,bytearray.length); 
     currentTot = bytesRead; 
     System.out.println("The Size of the data transferred is " + bytesRead + " Bytes"); 

     do { 
      bytesRead = 
       is.read(bytearray, currentTot, (bytearray.length-currentTot)); 
      if(bytesRead >= 0) currentTot += bytesRead; 
     } while(bytesRead > -1); 

     bos.write(bytearray, 0 , currentTot); 
     bos.flush(); 
     bos.close(); 
     socket.close(); 
     } 
} 

сервер:

package sockets; 
import java.net.*; 
import java.io.*; 
public class Server { 


public static void main (String [] args) throws IOException {` 

      ServerSocket serverSocket = new ServerSocket(6789); 
       Socket socket = serverSocket.accept(); 
       System.out.println("Accepted connection : " + socket); 
       File transferFile = new File ("Orders.txt"); 
       byte [] bytearray = new byte [(int)transferFile.length()]; 
       FileInputStream fin = new FileInputStream(transferFile); 
       BufferedInputStream bin = new BufferedInputStream(fin); 
       bin.read(bytearray,0,bytearray.length); 
       OutputStream os = socket.getOutputStream(); 
       System.out.println("Sending Files..."); 
       os.write(bytearray,0,bytearray.length); 
       os.flush(); 
       socket.close(); 
       System.out.println("File transfer complete"); 
      } 
} 

Спасибо

ответ

1

Истерируйте все файлы в выбранном каталоге и получите все известные расширения изображений, которые вы хотите отправить.

Here's an example для итерации по файлам.

Затем передайте байты в каждом из этих файлов с вашего клиента на ваш сервер.

Я предлагаю использовать FTP для отправки ваших файлов на ваш сервер в качестве установленного протокола для такого типа проблем.

0

Невозможно отправить каталог полностью, как есть. У вас есть 2 варианта:

  1. Создайте почтовый файл и отправьте его.
  2. Откройте каталог и перейдите по всему каталогу и отправьте каждый файл по отдельности.
+0

Если бы я взял второй вариант, вы могли бы показать пример куска кода о том, как бы я мог его перебрать в каталог – user2698097

Смежные вопросы