Возможно ли загрузить / загрузить файл с помощью REST или любой другой веб-службы и отправить HTML-код?
Это должно быть возможно с использованием: PHP, Java или ASP.
Я думаю, что это будет полезно. По крайней мере, когда дело доходит до Java. Фактически, посмотрите на весь учебник
Вот пример, как это сделать, используя Spring:
Добавьте в свой pom.xml
зависимости от commons-io и commons- pom.xml
. Настройте multipart resolver в вашем xml-файле контекста сервлета:
<beans:bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <beans:property name="maxUploadSize" value="10000000" /> </beans:bean>
Это будет ваш JSP для загрузки файлов (например, fileUpload.jsp
):
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title></title> </head> <body> <form:form method="post" commandName="upload" action="uploadNewFile" enctype="multipart/form-data"> <table class="table table-bordered"> <tbody> <tr> <td><label>File</label></td> <td><input class="form-control" name="file" type="file" id="file" /></td> </tr> <tr> <td colspan="2"><input class="btn btn-primary" type="submit" value="Upload" /></td> </tr> </tbody> </table> </form:form> </body> </html>
И это контроллер:
import java.io.IOException; import org.springframework.http.MediaType; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.multipart.MultipartFile; import org.springframework.web.servlet.ModelAndView; @Controller public class UploadController { // Show page for upload @RequestMapping(value = "/fileUpload", method = RequestMethod.GET) public ModelAndView showUploadFilePage() { return new ModelAndView("fileUpload", "upload", null); } // Get multipart file and save it @RequestMapping(value = "/uploadNewFile", method = RequestMethod.POST) public String save(@RequestParam("file") MultipartFile file) { // Save it to ie database // dao.save(file); return "fileUpload"; } // Downloads file. Ie JPG image @RequestMapping(value = "/download/{id}", produces = MediaType.IMAGE_JPEG_VALUE) public @ResponseBody HttpEntity<byte[]> getFile( @PathVariable("id") Integer id) throws IOException { byte[] file= dao.get(id).getImage(); HttpHeaders header = new HttpHeaders(); header.set("Content-Disposition", "attachment; filename=Image"); header.setContentLength(file.length); return new HttpEntity<byte[]>(file, header); } }
Да … это возможно.
Однако это зависит от реализации на стороне сервера.
Но если вам просто нужен ответ … его ДА
да, возможно, для этого нужно использовать правильный миметик. вы можете передать строку в тело ответа, если вы используете Rest …