栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

文件上传下载服务器(xshell 文件上传下载)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

文件上传下载服务器(xshell 文件上传下载)

同步上传

后端代码:

@MultipartConfig() //1.
@WebServlet("/upload")
public class FileUploadServlet extends HttpServlet {
​
    
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        String savePath = req.getServletContext().getRealPath("uploads");
        Part part = req.getPart("myfile"); //2.
        if(part!=null){
            //3.
            part.write(savePath+File.separator+part.getSubmittedFileName());
        }
    }
}
Spring Mvc处理上传文件

上传到ftp

文件显示
 
后端响应图片 

TODO:

ajax上传
异步上传文件(利用FormData):formdata介绍




上传脚本

//可以参考:https://www.jianshu.com/p/51188659d778
$("#btnUpload").click(function(){
    //$("#asyncFile")[0] 变成dom对象
    let file =  $("#asyncFile")[0].files[0];//file变量就是获取到的file对象
    let fd = new FormData();
    fd.append("asyncfile", file); //这里的名字决定了后端servlet取文件数据的键名
    fd.append("xxx", "12345");  //可以不用这行代码,演示上传文件时,额外传递其它数据
    $.ajax({
        url:"asyncupload",
        data: fd,
        type: "POST",
        dataType: "json",
        //上传文件无需缓存
        cache: false,
        //用于对data参数进行序列化处理 这里必须false
        processdata: false,
        //必须
        contentType: false, 
        success: function (res) {
            alert(res)
        }
    }) 
})

后端代码

@MultipartConfig()
@WebServlet("/asyncupload")
public class AsyncFileUploadServlet extends HttpServlet {
​
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        Object data = req.getParameter("xxx");
        System.out.println("debug:---" + data);
        String savePath = req.getServletContext().getRealPath("uploads");
        Part part = req.getPart("asyncfile");
        if(part!=null){
            part.write(savePath+File.separator+part.getSubmittedFileName());
        }
        resp.setContentType("application/json;charset=UTF-8");
        resp.getWriter().print(true);
    }
}
vue+elementui(仅传文件)
vue+插件上传(只上传文件,不带额外数据)

    
      点击上传
      只能上传jpg/png文件,且不超过500kb
    

脚本

//可以参考:https://www.cnblogs.com/goloving/p/8967865.html
//https://element.eleme.cn/#/zh-CN/component/upload
let vm = new Vue({
    el:"#app"
})

后端代码

@MultipartConfig()
@WebServlet("/vueupload")
public class VueFileUploadServlet extends HttpServlet {
​
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        Object data = req.getParameter("xxx");
        System.out.println("debug:---" + data);
        String savePath = req.getServletContext().getRealPath("uploads");
        Part part = req.getPart("file");
        if(part!=null){
            part.write(savePath+File.separator+part.getSubmittedFileName());
        }
        resp.setContentType("application/json;charset=UTF-8");
        resp.getWriter().print(true);
    }
}
文件大小与类型的限制:

TODO:待优化element-ui文件上传 做类型大小的限制 - ```...简单点 - 博客园

 

beforeUpload(file) {                 
    var testmsg=file.name.substring(file.name.lastIndexOf('.')+1)                
    const extension = testmsg === 'xls'
    const extension2 = testmsg === 'xlsx'
    const isLt2M = file.size / 1024 / 1024 < 10
    if(!extension && !extension2) {
        this.$message({
            message: '上传文件只能是 xls、xlsx格式!',
            type: 'warning'
        });
    }
    if(!isLt2M) {
        this.$message({
            message: '上传文件大小不能超过 10MB!',
            type: 'warning'
        });
    }
    return extension || extension2 && isLt2M
}

vue+elementui(文件+额外数据)
vue+插件上传(带额外的数据)

    
        选取文件
        上传到服务器
        只能上传jpg/png文件,且不超过500kb
    

脚本

//可以参考:https://www.cnblogs.com/goloving/p/8967865.html
//https://element.eleme.cn/#/zh-CN/component/upload
let vm2 = new Vue({
    el:"#app2",
    data:{
        extra:{
            xxx:"12345"
        }
    },
    methods:{
        submitUpload() {
            this.$refs.upload.submit();
        }
    }
})

后端代码

@MultipartConfig()
@WebServlet("/vueupload")
public class VueFileUploadServlet extends HttpServlet {
​
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        Object data = req.getParameter("xxx");
        //这里获取除了文件数据外的其他普通数据
        System.out.println("debug:---" + data);
        String savePath = req.getServletContext().getRealPath("uploads");
        Part part = req.getPart("file");
        if(part!=null){
            part.write(savePath+File.separator+part.getSubmittedFileName());
        }
        resp.setContentType("application/json;charset=UTF-8");
        resp.getWriter().print(true);
    }
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/773613.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号