kindeditor4.1.10上传图片失败

发布于 2021-11-24 10:18:53 字数 311 浏览 774 评论 6

  使用nginx静态存储图片,上传图片报错


正确的应该是这样

而且,即使上传出错,nginx服务器里面的资源已经上传成功。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

流心雨 2021-11-30 19:14:08

是的啊,显示的是那个HTTP路径,上传的是那个本地路径,我这样说对吗?

风透绣罗衣 2021-11-30 19:14:05

@最爱笑笑丶 对 ,如果上传可以成功 就手工通过URL看能不能访问 如果能对比URL的区别

英雄似剑 2021-11-30 19:13:46

回复
现在的情况就是前台可以访问后台的controller,但是呢,返回json数据的时候前台接收然后就显示上传失败了,他就把那个图片的bean的信息返回给我,但是正常的话是直接显示图片的

各自安好 2021-11-30 17:00:59

这东西有2个路径 一个是上传的 一个用来显示的

终陌 2021-11-30 16:01:56

后台代码已贴出

韬韬不绝 2021-11-27 05:43:14
/**
 * 图片上传
 */
@Controller

public class PicUploadController {

    private static final Logger LOGGER = LoggerFactory.getLogger(PicUploadController.class);
    
    @Autowired
    private PropertieService propertieService;

    private static final ObjectMapper mapper = new ObjectMapper();

    // 允许上传的格式
    private static final String[] IMAGE_TYPE = new String[] { ".bmp", ".jpg", ".jpeg", ".gif", ".png" };

    @RequestMapping(value = "upload", method = RequestMethod.POST)
    @ResponseBody
    public String upload(@RequestParam("uploadFile") MultipartFile uploadFile, HttpServletResponse response)
            throws Exception {

        // 校验图片格式
        boolean isLegal = false;
        for (String type : IMAGE_TYPE) {
            if (StringUtils.endsWithIgnoreCase(uploadFile.getOriginalFilename(), type)) {
                isLegal = true;
                break;
            }
        }

        // 封装Result对象,并且将文件的byte数组放置到result对象中
        PicUploadResult fileUploadResult = new PicUploadResult();

        // 状态,0-合法,1-不合法
        fileUploadResult.setError(isLegal ? 0 : 1);

        // 文件新路径
        String filePath = getFilePath(uploadFile.getOriginalFilename());

        if (LOGGER.isDebugEnabled()) {
            LOGGER.debug("Pic file upload .[{}] to [{}] .", uploadFile.getOriginalFilename(), filePath);
        }

        // 生成图片的绝对引用地址
        String picUrl = StringUtils.replace(
                StringUtils.substringAfter(filePath, propertieService.REPOSITORY_PATH), "\", "/");
        fileUploadResult.setUrl(propertieService.IMAGE_BASE_URL + picUrl);
        

        File newFile = new File(filePath);

        // 写文件到磁盘
        uploadFile.transferTo(newFile);

        // 校验图片是否合法
        isLegal = false;
        try {
            BufferedImage image = ImageIO.read(newFile);
            if (image != null) {
                fileUploadResult.setWidth(image.getWidth() + "");
                fileUploadResult.setHeight(image.getHeight() + "");
                isLegal = true;
            }
        } catch (IOException e) {
        }

        // 状态
        fileUploadResult.setError(isLegal ? 0 : 1);

        if (!isLegal) {
            // 不合法,将磁盘上的文件删除
            newFile.delete();
        }

        //设置响应内容的类型,文本类型
        response.setContentType(MediaType.TEXT_HTML.toString());
        String json=mapper.writeValueAsString(fileUploadResult);//将java对象转换为json字符串
        System.out.println(json);
        return json;
    }
    
    private String getFilePath(String sourceFileName) {
        String baseFolder = propertieService.REPOSITORY_PATH + File.separator + "images";
        Date nowDate = new Date();
        // yyyy/MM/dd
        String fileFolder = baseFolder + File.separator + new DateTime(nowDate).toString("yyyy")
                + File.separator + new DateTime(nowDate).toString("MM") + File.separator
                + new DateTime(nowDate).toString("dd");
        File file = new File(fileFolder);
        if (!file.isDirectory()) {
            // 如果目录不存在,则创建目录
            file.mkdirs();
        }
        // 生成新的文件名
        String fileName = new DateTime(nowDate).toString("yyyyMMddhhmmssSSSS")
                + RandomUtils.nextInt(100, 9999) + "." + StringUtils.substringAfterLast(sourceFileName, ".");
        return fileFolder + File.separator + fileName;
    }

}

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文