两江总督首席码农 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条回答 默认 最新

报告相同问题?

悬赏问题

  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?