Не совсем понимаю как можно полностью вытащить изображение по url с помощью Spring. У меня простой REST контроллер post
@PostMapping(value = "/upload-multiple-files", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
@ResponseBody
public List<FileResponse> uploadMultipleFiles(
@RequestParam(value = "url", required = false) URL request,
@RequestParam(value = "files", required = false) @Valid @NotNull @NotBlank MultipartFile[] files
)
{//логика}
передаю ссылку через форму
<h4>Upload URL:</h4>
<form method="POST" enctype="multipart/form-data" th:action="@{/upload-multiple-files}">
<p><b>URL:</b><br>
<input type="url" name="url" size="50">
</p>
<p><input type="submit" value="Отправить">
<input type="reset" value="Очистить"></p>
</form>
пришла ко мне ссылка на изображение и не очень ясно как вытащить по ссылке само изображение. Подскажите пожалуйста.
Вы пошли не верным путем для решения поставленной задачи. Вам нужно загрузить файл из указанного URL. для этого не надо никаких enctype="multipart/form-data"
Все что вам надо это добавить несколько полей ввода с одним именем(хардкодом или средствами DHTML) и отправить форму на сервер с enctype по умолчанию(то есть не устанавливая его)
так ведь input type="url" это обычное поле ввода текста, просто наделенное маской. То есть на сервер приходит все такие же строки, ничем не отличающиеся от других текстовых полей...То есть multipart/form-data, который применяется для передачи содержимого файлов с машины клиента, на сервер вам не нужен... То есть форма будет выглядеть так:
<h4>Upload URL:</h4>
<form method="POST" th:action="@{/upload-multiple-files}">
<p><b>URL:</b><br>
<input type="urls" name="url" size="50">
<input type="urls" name="url" size="50">
<input type="urls" name="url" size="50">
<input type="urls" name="url" size="50">
</p>
<p><input type="submit" value="Отправить">
<input type="reset" value="Очистить"></p>
</form>
Для обработки нескольких текстовых полей с одним именем вам нужно указать
@PostMapping(value = "/upload-multiple-files", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
@ResponseBody
public List<FileResponse> uploadMultipleFiles(
@RequestParam(value = "urls", required = false) @NotEmpty String[] urls
)
{
foreach(String url in files) {
URL myURL = new URL(url);
IOUtils.copy(myURL.openStream(), new FileOutputStream("store/" + myURL.getFile()))
}
}
Писал на коленке, чтобы передать суть, код возможно имеет ряд мелких неточностей относительно обработки ошибок и правил валидации.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Мой кастомный Spinner при первом клике на него долго открывается (~3 сек)Он состоит из 25 обьектов класса Person