写了个Spring rest 风格的 图片加载。
package cn.tang.demo.controller.image; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; 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; @Controller @RequestMapping(value = "/image/") public class ImageCacheController { // for restful http://localhost:8888/rest/image/load?imageName=a.jpg @RequestMapping(value = "/load", method = RequestMethod.GET) public void imageLoad(@RequestParam(value = "imageName", required = true) String imageName, HttpServletRequest request, HttpServletResponse response) throws IOException { File f = new File("c://"+imageName); if (!f.exists()) { return; } FileInputStream fis = new FileInputStream(f); byte[] buffer = new byte[1024]; int len =0; try { response.setHeader("Content-Type", "image/jpg;charset=UTF-8"); ServletOutputStream outputStream = response.getOutputStream(); while ((len=fis.read(buffer)) > 0) { outputStream.write(buffer, 0, len); } outputStream.flush(); } finally { fis.close(); } } // for restful http://localhost:8888/rest/image/a.jpg @RequestMapping(value = "/{name:\\S*\\.?\\S+}", method = RequestMethod.GET) public void helloMan(@PathVariable String imageName, HttpServletRequest request, HttpServletResponse response) throws IOException { File f = new File("c://"+imageName); if (!f.exists()) { return; } FileInputStream fis = new FileInputStream(f); byte[] buffer = new byte[1024]; int len =0; try { response.setHeader("Content-Type", "image/jpg;charset=UTF-8"); ServletOutputStream outputStream = response.getOutputStream(); while ((len=fis.read(buffer)) > 0) { outputStream.write(buffer, 0, len); } outputStream.flush(); } finally { fis.close(); } } }
这个是最基本的图片获取方式,我们可以把图片放入缓存中,然后通过读缓存而不是读文件来获取图片。
相关推荐
在“activiti rest upload picture”这个场景中,我们将讨论如何利用Activiti的工作流引擎,通过REST API来上传图片。 首先,理解Activiti的工作流程: 1. **Activiti模型**:Activiti使用 BPMN 2.0(Business ...
3. 通过`GetRequestStream()`方法获取流,并将POST数据写入。 4. 使用`GetResponse()`方法获取响应,并读取响应内容。 #### 四、总结 通过以上内容,我们可以看到如何创建一个基于WCF的REST服务,并通过ASP.NET...
5. `data`或`test`目录:可能包含测试图片、标注文件或其他输入数据。 6. `README.md`:项目介绍、使用指南和贡献者信息。 7. `config.py`或`.json`文件:配置参数,如服务器端口、模型路径等。 深入研究这个项目,...
标题 "springboot-rest.zip" 暗示了这个压缩包主要包含有关于Spring Boot与RESTful API集成的内容...此外,"博客_files"目录可能包含了图片、CSS样式表和JavaScript文件,这些资源对理解文章内容和示例可能非常有帮助。
在本文中,我们将深入探讨如何使用Django框架与Django Rest Framework(DRF)来创建API接口,并生成接口文档以及返回JSON数据。首先,我们来看看Django和DRF是什么。 Django是一个用Python编写的高级Web框架,它...
1. ORDS(Oracle REST Data Services):Oracle提供的REST服务可以方便地将数据库中的BLOB数据暴露为HTTP接口,简化图片的Web访问。 2. 图片服务:考虑使用专门的图片服务(如Amazon S3或阿里云OSS),将图片存储在...
- **解析流并显示图片**:接收到字节流后,将其转换回图片格式,通常会用到ByteArrayInputStream和ImageIO类。最后,将图片数据显示在GUI(图形用户界面)或者网页上。 4. **安全与性能优化**: - **安全**:为了...
- 文件流处理:服务器接收文件流,避免一次性加载整个文件到内存,降低内存消耗。 - 安全检查:验证文件类型,防止恶意文件上传,比如通过MIME类型检查。 - 图片处理:后端可以进一步调整图片大小、质量,甚至...
3. 我的任务提供Rest服务,完成日常的工作管理,通过定时调度平台,动态生成我的任务、循环周期任务、定时邮催提醒完成任务等 4. 文件上传、多线程下载服务化、发送邮件、短信服务化、部门信息服务化、产品信息服务...
在RESTful架构中,资源是唯一的,可以是任何信息实体,如文档、图片、服务等。资源由URI(统一资源标识符)唯一标识。当客户端需要对服务器上的资源执行操作时,它通过发送标准的HTTP方法(如GET、POST、PUT、DELETE...
5. **下载图片**:遍历图片URL列表,对每个URL发起一个新的GET请求,然后将响应流保存到本地文件系统,以完成图片下载。 6. **错误处理和优化**:考虑可能的网络错误,如超时、重定向等,并添加适当的异常处理。...
例如,可以使用jQuery库来处理图片轮转的动画效果,同时利用SharePoint的REST API或SOAP服务来获取图片库中的数据。 为了实现这个轮转器,开发人员可能会遵循以下步骤: 1. 创建SharePoint列表或图片库,存储要...
Minio是一个开源的对象存储服务器,它兼容Amazon S3 API,适用于存储和检索大量非结构化数据,如图片、文档和视频。REST(Representational State Transfer)是一种网络应用程序的设计风格和开发方式,基于HTTP协议...
- RESTful API:多数情况下,服务器端会有对应的REST接口接收图片,使用HTTP的POST或PUT方法进行上传。 5. **文件切片上传**: - 对于大文件,可以考虑分块上传。Java可以利用`RandomAccessFile`实现文件切片,...
图片上传是指服务端接收并处理图片文件的上传请求,这通常涉及到文件流处理、文件大小限制、格式检查、错误处理以及安全存储等方面。服务则意味着这是一个可以被多次调用、处理不同用户请求的可复用组件。 从压缩包...
`@RequestMapping`注解指定了一个处理GET请求的端点,该端点返回的是一个JPEG格式的图片流。在Java代码中,我们看到服务器会根据请求参数`fj_id`查询数据库获取文件信息,并通过`hibernateDao`执行SQL查询。一旦获取...
- **图片处理逻辑**:例如,实现图片翻转的算法,并将处理后的图片流发送给前端显示。 - **API接口设计**:定义清晰的API接口供前端调用,比如获取图片列表、上传新图片等功能。 ### 二、代码分析与扩展 #### 1. ...
在本文中,我们将深入探讨如何使用MyBatis框架来读取数据库数据,并通过RESTful接口对外提供服务。...MyBatis的灵活性使得开发者能够自定义复杂的SQL查询,而REST接口则提供了现代应用程序所需的互操作性和可扩展性。
2. **模型加载和保存**:通过调用Activiti的REST API或服务接口,加载XML流程定义文件,并将其显示为图形。同样,当用户完成设计后,需要将流程图的数据转换回XML并保存到Activiti服务器。 3. **元素操作**:实现...
例如,后端可以提供一个REST API,接收请求并返回二维码图片的二进制流,前端则调用该API并设置标签的src属性为API的URL。 ```html ``` 在这个例子中,前端发送一个GET请求到"/api/qrcode",携带查询参数"data",...