SpringMVC实现angularjs图片上传
来源:互联网 发布:淘宝银座365是正品吗 编辑:程序博客网 时间:2024/05/18 06:21
<pre name="code" class="html"><span style="font-family: 宋体; font-size: 12pt;">controller文件:</span>
import com.geego.result.base.ResultMessage;import com.geego.util.BaseUtil;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.*;import org.springframework.web.multipart.MultipartFile;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.io.*;@Controller@RequestMapping("/file")public class FileUpLoadController {private static Logger logger = LoggerFactory.getLogger(FileUpLoadController.class);private static String filePath = "D:/IdeaProjects/images/";@ResponseBody@RequestMapping(value = "/upload",method = RequestMethod.POST)public Object imageUpload(@RequestParam(value="file")MultipartFile file) {String path = "";if (!file.isEmpty()){if ("image/jpeg".equals(file.getContentType())){path = saveImgFile(file);}}ResultMessage message = new ResultMessage();message.addMeta("img_id",path);return message;}@RequestMapping(value = "/upload",method = RequestMethod.OPTIONS)public void uploadGet(HttpServletResponse response) {response.setHeader("access-control-allow-headers","accept, content-type");response.setHeader("access-control-allow-methods","GET, POST, PUT, OPTIONS");}@RequestMapping(value = "/img",method = RequestMethod.GET)public void getImg(HttpServletRequest request,HttpServletResponse response, @RequestParam String img_id){String path = filePath + img_id;FileInputStream fis = null;response.setContentType("image/jpeg");try {OutputStream out = response.getOutputStream();File file = new File(path);fis = new FileInputStream(file);byte[] b = new byte[fis.available()];fis.read(b);out.write(b);out.flush();} catch (Exception e) {logger.error("file not found:",e);} finally {if (fis != null) {try {fis.close();} catch (IOException e) {logger.error("file read error:",e);}}}}public String saveImgFile(MultipartFile file){try {logger.debug("upload img");String fileType = file.getOriginalFilename();fileType = fileType.substring(fileType.indexOf("."),fileType.length());String fileName = getFileName();String path = filePath + fileName + fileType;// 转存文件file.transferTo(new File(path));return fileName + fileType;} catch (IOException e) {logger.error("upload img error:",e);}return null;}public String getFileName(){String fileName = String.valueOf(BaseUtil.getAtomicCounter());return fileName;}
web.xml中加入支持option方法:
<servlet><servlet-name>mvc-dispatcher</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>dispatchOptionsRequest</param-name><param-value>true</param-value></init-param><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>mvc-dispatcher</servlet-name><url-pattern>/</url-pattern></servlet-mapping>因为图片上传实际上是两个请求,第一次是option请求,第一次需要设置header,第二次才是图片上传。所以要实现两个接口
0 2
- SpringMVC实现angularjs图片上传
- SpringMVC实现图片上传
- SpringMVC实现图片上传
- SpringMVC实现图片上传
- AngularJS+FileReader实现图片上传
- springmvc实现图片的上传
- webuploader+springmvc实现图片上传
- angularjs 实现图片上传实时预览
- Angularjs 实现多图片上传预览
- bootstrap + angularjs + springmvc + mybatis框架之图片上传和展示
- SpringMVC批量上传图片,实现上传前图片预览
- SpringMVC批量上传图片,实现上传前图片预览
- springmvc实现图片的上传和展示
- 图片上传--SpringMVC实现RESTful接口
- SpringMVC图片文件上传功能实现
- SpringMVC图片文件上传功能实现
- springmvc+easyui+fileupload实现图片上传
- AJAX+JQuery+SpringMVC实现图片上传
- 实现自定义水波纹效果
- AEAI CRM_v1.5.2升级说明,开源客户关系管理系统
- ION基本概念介绍和原理分析
- UIColor
- 把数据保存到数据库附加表 `dede_addonarticle` 时出错,请把相关信息提交给DedeCms
- SpringMVC实现angularjs图片上传
- 以太网基础知识0(UDP和TCP有什么区别)
- Properties文件的读取。
- C语言单链表和双链表的创建和输出
- 线程池之深度了解-ThreadPoolExecutor
- go中channel简单使用
- Lua代码编写注意点
- Caused by: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant)
- hdu2149——Public Sale(巴什博弈)