前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >JAVA中如何图片异步上传

JAVA中如何图片异步上传

作者头像
编程范 源代码公司
发布2018-04-16 13:37:35
2.3K0
发布2018-04-16 13:37:35
举报

来源:程序员头条:http://www.90159.com/2015/12/15/java-upload-picture/ 在java中要实现异步上传要提前做好准备,对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接使用Servlet获取上传文件的输入流然后再解析里面的请求参数是比较麻烦,所以一般选择采用apache的开源工具common-fileupload这个文件上传组件。

这个common-fileupload上传组件的jar包可以去apache官网上面下载,也可以在struts的lib文件夹下面找到,struts上传的功能就是基于这个实现的。

common-fileupload是依赖于common-io这个包的,所以还需要下载这个包。剩下的就是js文件的导入了,我导入了以下文件:

代码语言:javascript
复制
<script type="text/javascript" src="lib/Js/jquery.js"></script>
 <script ltype="text/javascript" src="/js/ajaxfileupload.js"></script>

在页面中的写法:

代码语言:javascript
复制
 div class="controls">
<span class="btn green fileinput-button">
<i class="icon-plus icon-white"></i>
    <span>上传照片</span>
    <input id="fileToUpload" name="myfiles" type="file" onchange="upload()" title="上传" />
</span>
 </div>function upload(){
            $.ajaxFileUpload  
             (  
                 {  
                     url:'<%=basePath%>sysperson/uploadpic',  
                     secureuri:false,  
                     fileElementId:'fileToUpload',  
                     dataType: 'text',  
                     success: function (data, status)  
                     {
                        document.all.mypic.src="<%=basePath%>uploads/" + data;
                        document.all.picpath.value = data;
                    },                    error : function(data, status, e) {
                        alert(e);
                    }
                });
            }

java代码写法:

代码语言:javascript
复制
@RequestMapping(value = "uploadpic",method=RequestMethod.POST)
    public void fileUpload(@RequestParam MultipartFile[] myfiles,
            HttpServletRequest request, HttpServletResponse response)
            throws IOException {
        String imgPath = "/uploads" + "/";
        File directory = new File(request.getSession().getServletContext()
                .getRealPath("/")
                + imgPath);
        String desFileName = null;
        String fileNewName = null;
        response.setContentType("text/html; charset=UTF-8");
        PrintWriter out = response.getWriter();
        String originalFilename = null;        for (MultipartFile myfile : myfiles) {            if (myfile.isEmpty()) {
                out.write("请选择文件后上传");
                out.flush();
            } else {
                originalFilename = myfile.getOriginalFilename();                if (null != originalFilename && originalFilename.length() > 0) {
                    fileNewName = UUID.randomUUID() + originalFilename;
                    desFileName = directory.toString() + "/" + fileNewName;
                }
                try {
                    FileUtils.copyInputStreamToFile(myfile.getInputStream(),
                            new File(desFileName));
                } catch (IOException e) {
                    e.printStackTrace();
                    out.write("文件上传失败,请重试!!");
                    out.flush();
                }
            }
        }
        out.print(fileNewName);
        out.flush();
    }

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2015-12-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 编程范 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档