package org.yl.ims.controller;

import java.io.IOException;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.yl.ims.model.ImageModel;
import org.yl.ims.service.FileService;

import com.alibaba.fastjson.JSONArray;
import com.mongodb.gridfs.GridFSDBFile;
import com.mongodb.gridfs.GridFSFile;
import com.oreilly.servlet.multipart.MultipartParser;
import com.oreilly.servlet.multipart.Part;

@Controller
@RequestMapping("fileapi")
public class FileCtrl {

	@Autowired
	private FileService fileService;

	@RequestMapping("upload")
	@ResponseBody
	public String uploadFile(HttpServletRequest request,
			HttpServletResponse response) throws IOException {
		MultipartParser mp = new MultipartParser(request, 1024 * 1024 * 1024,
				true, true, "UTF-8");// “GB18030”必须和jsp编码格式相同,不然会产生中文乱码
		Part part = null;
		List<String> gl = new ArrayList<String>();
		while ((part = mp.readNextPart()) != null) {
			GridFSFile saveFile = fileService.saveFile(part);
			gl.add(saveFile.getId().toString());
		}
		String jsonString = JSONArray.toJSONString(gl);
		return jsonString;
	}

	@RequestMapping("download")
	@ResponseBody
	public void downloadFile(String fileId, HttpServletRequest request,
			HttpServletResponse response) throws IOException {
		GridFSDBFile gridFSDBFile = fileService.downloadFile(fileId);
		if (gridFSDBFile != null) {
			OutputStream sos = response.getOutputStream();
			response.setContentType("application/octet-stream");
			String name = (String) gridFSDBFile.get("fileName");
			String fileName = new String(name.getBytes("UTF-8"), "ISO8859-1");
			response.addHeader("Content-Disposition", "attachment; filename=\""
					+ fileName + "\"");
			gridFSDBFile.writeTo(sos);
			sos.flush();
			sos.close();
		}
	}

	@RequestMapping("showlist")
	@ResponseBody
	public List<ImageModel> getFile() {
		return fileService.getFileList(1111);
	}
}
最近下载更多
wanglinddad  LV55 2022年4月5日
ohmlawx  LV2 2021年10月28日
Louis  LV7 2021年8月12日
wyyybl  LV4 2020年9月17日
手落弦崩  LV13 2019年10月21日
1310431445  LV6 2019年6月22日
zuizui  LV1 2019年4月19日
dch187  LV13 2019年4月2日
希望依然  LV6 2019年2月19日
2907787153  LV1 2018年12月28日
最近浏览更多
krispeng  LV13 11月20日
huangcangbai 10月1日
暂无贡献等级
周敏国  LV9 2023年9月21日
tangyongheng08  LV6 2023年6月15日
996171721  LV7 2023年5月29日
124578zx 2023年3月31日
暂无贡献等级
13776818060 2023年3月19日
暂无贡献等级
ewan007  LV30 2023年3月13日
yubuzhuo  LV2 2023年2月27日
漫步的海星  LV4 2023年2月22日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友