我也不知道叫什么好 2018-11-28 09:44 采纳率: 50%
浏览 5679

MultipartFile多张图片上传,只能传一张,请问到底是这么回事啊,谢谢

public void doPost(@RequestParam("file") MultipartFile[] file,HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

try {
String[] delOs = request.getParameterValues("delOs");
if (file != null && file.length > 0) {
int flag = 0;//跳出循环标识
// 循环获取file数组中得文件
for (int i = 0; i < file.length; i++) {
MultipartFile pic = file[i];
// 文件名使用当前时间
String name = contractNo +"@"+new SimpleDateFormat("yyyyMMddHHmmss").format(new Date());

                // 获取上传图片的扩展名(jpg/png/...)
                String extension = FilenameUtils.getExtension(originalFilename);

                // 图片上传的绝对路径
                String url = "D:\\workspace\\File\\";
                File dir = new File(url);
                if (!dir.exists()) {
                    dir.mkdirs();
                }
                if (pic.isEmpty()) {
                    // TODO文件为空时处理
                    return;
                } else {
                    pic.transferTo(new File(url+ name + "." + extension));
                }
            }
        }

    } catch (Exception e) {
        throw new RuntimeException("服务器繁忙,上传图片失败");
    }
}

后台断点下没问题,file里多张图片,也可上多张,但是去掉断点,直接运行,每次就只能上传最后一张,请指教!谢谢!不好意思,没有C币!抱歉

  • 写回答

2条回答

  • weixin_37478937 2018-11-29 08:57
    关注

    文件名相同了把之前的给覆盖了,你String name = contractNo +"@"+new SimpleDateFormat("yyyyMMddHHmmss").format(new Date());
    改成String name = contractNo+i+"@"+new SimpleDateFormat("yyyyMMddHHmmss").format(new Date());就可以了

    评论

报告相同问题?

悬赏问题

  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥15 stable diffusion
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿