JAVA超超超简单文件上传MultipartFile+ajax

话不多说直接上代码!

框架是:spring-什么都行!只要有控制器就好

JS

	//在html提交按钮中onclick中调用此方法即可
	add: function () {
	
        const file=$("#file")[0].files;

        const formData = new FormData();

        //这里可以改为上传多个图片,把[0]去掉就行
        formData.append("file", file[0]);

        $.ajax({
            type: "POST",
            //请求地址/console/addFile,根据自己需要填写
            url: request('/console/addFile'),
            data: formData,
            dataType: "json",
            mimeType: "multipart/form-data",
            cache: false,
            async: false,
            //下面两行必加
            processData: false,
            contentType: false,
            traditional: true,
            success: function (result) {
               //成功执行的回调方法,根据需要去写就行了
            },
            error: function (result) {
              //错误执行的回调
            }
        })
    }

HTML

文件:
<input id="file" multiple="multiple" type="file" name="file">
<button onclick="add()" type="submit">提交</button>
<!--引用js-->
<script type="text/javascript" src="/js/add.js"></script>
form不要都行,只要有input类型为file,再来一个submit就可以了。

JAVA

上传方法
package cn.xyz.commons.utils;

import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.IOException;

public class UploadFile {

    public String upload(MultipartFile file) throws Exception {
        //本地测试地址
//        String PATH = "E:\\uploadDev\\";
        //服务器用地址(文件夹地址)
        String PATH = "/opt/nginx/html/myfile";
        try {
            // 文件名
            String fileName = file.getOriginalFilename();
            
            StringBuilder fileUrl = new StringBuilder();
            
            String now = String.valueOf(System.currentTimeMillis());
            
            fileUrl.append(PATH);
            fileUrl.append(now);
            fileUrl.append(fileName);
            // 转存文件到指定的路径
            try {
                file.transferTo(new File(String.valueOf(fileUrl)));
            } catch (IllegalStateException | IOException e) {
                e.printStackTrace();
            }
            return "http://(你的服务器域名):8888/myfile/"+now+fileName;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }
}

上传方法:我这里的操作全都不要都可以,只要有
		// 转存文件到指定的路径
        try {
            file.transferTo(new File(“服务器地址”));
        } catch (IllegalStateException | IOException e) {
            e.printStackTrace();
        }
即可
控制器代码
	@ResponseBody
    @RequestMapping(value = "/console/addFile")
    public String addAppVersion(@RequestParam("file") MultipartFile[] file) {
		//这里用MultipartFile[]数组接受可以接受多个文件,也可以为空,非常方便
       try {
           //文件上传
           UploadFile uploadFile = new UploadFile();

			//数据库对应对象
            MyFile myFile= new MyFile();

            if(file.length>0){
                String filUrl= uploadFile.upload(file[0]);
                myFile.filUrl(filUrl);
            }
     
			//最后将myFile保存到数据库即可
			
           return "上传完成";
       }catch (Exception e){
           return "错误!"+e.getMessage();
       }
    }

我这边是把文件放在nginx上,所以可以直接访问数据库存储的地址可直接访问静态资源

注:(如有任何疑问可留言)

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ywh22122

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值