两江总督首席码农 2015-10-20 12:50 采纳率: 0%
浏览 3380
已结题

图片上传返回JSON数据,前台弹出下载保存文件框, 文件里面是JSON数据,页面上没显示图片怎么解决

@RequestMapping(value = "kinduploadfile", method = RequestMethod.POST)
public @ResponseBody
JSONObject KindUploadFile(HttpServletRequest request,HttpServletResponse response)
throws FileUploadException {
response.setContentType("text/html;charset=UTF-8");
JSONObject obj = new JSONObject();
Calendar cal = Calendar.getInstance();
int year = cal.get(Calendar.YEAR);
int month = (cal.get(Calendar.MONTH)) + 1;
int day = cal.get(Calendar.DAY_OF_MONTH);
Map map = new HashMap();
String rootPath = "/upload/";
rootPath += year + "/" + month + "/" + day + "/";
String realRootPath = request.getServletContext().getRealPath(rootPath);
java.io.File f = new File(realRootPath);
if (f.exists() == false) {
f.mkdirs();
}
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
CommonsMultipartFile file = (CommonsMultipartFile) multipartRequest
.getFile("imgFile");// 这里是表单的名字,在swfupload.js中this.ensureDefault("file_post_name",
// "filedata");
try {

        InputStream stream = file.getInputStream();
        String oldfileName = file.getOriginalFilename();
        String type = oldfileName.split("\\.")[1];// 获取文件类型
        oldfileName = new String(oldfileName.getBytes(), "utf-8");
        String filename = rootPath + sdf.format(new Date())
                + (int) ((Math.random() + 1) * 100000) + "." + type;
        OutputStream bos = new FileOutputStream(request.getServletContext()
                .getRealPath(filename));
        int bytesRead = 0;
        byte[] buffer = new byte[8192];
        while ((bytesRead = stream.read(buffer, 0, 8192)) != -1) {
            bos.write(buffer, 0, bytesRead);
        }

        bos.close();
        // close the stream
        stream.close();

        obj.put("url", filename);
        obj.put("error",0);

    } catch (Exception e) {

        obj.put("error", "1");
        obj.put("message", e.getMessage());
    }
    // 上传操作

    return obj;

}
  • 写回答

1条回答 默认 最新

报告相同问题?

悬赏问题

  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
  • ¥50 如何openEuler 22.03上安装配置drbd
  • ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
  • ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)
  • ¥15 Windows11, backspace, enter, space键失灵