Как пересылать большие файлы java
Ответы
Иван Полежаев
12 апреля 2023
Для передачи больших файлов в Java
можно использовать различные протоколы и технологии, такие как HTTP
, FTP
, SFTP
, WebSocket
и другие.
Один из наиболее распространенных способов передачи файлов - это использование протокола HTTP
. Для этого можно воспользоваться библиотекой Apache HttpClient
, которая позволяет отправлять и получать HTTP-запросы
и ответы.
Ниже приведен пример использования библиотеки для отправки больших файлов:
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.ContentType;
import org.apache.http.entity.mime.MultipartEntityBuilder;
import org.apache.http.impl.client.HttpClientBuilder;
import java.io.File;
import java.io.IOException;
public class LargeFileUploadExample {
public static void main(String[] args) {
String url = "http://example.com/upload";
String filePath = "path/to/large/file";
HttpClient httpClient = HttpClientBuilder.create().build();
HttpPost httpPost = new HttpPost(url);
MultipartEntityBuilder builder = MultipartEntityBuilder.create();
builder.addBinaryBody(
"file",
new File(filePath),
ContentType.APPLICATION_OCTET_STREAM,
"large_file_name");
HttpEntity multipart = builder.build();
httpPost.setEntity(multipart);
try {
HttpResponse response = httpClient.execute(httpPost);
System.out.println(response.getStatusLine());
} catch (IOException e) {
e.printStackTrace();
}
}
}
В этом примере мы
- создаем объект
HttpClient
иHttpPost
- затем используем
MultipartEntityBuilder
для добавления бинарного тела в наш запрос - указываем имя файла, которое будет использоваться на сервере для сохранения файла
- выполняем наш запрос, используя метод
httpClient.execute(httpPost)
0
0