单文件文件上传到服务器(HTML5+js+Java)

摘要:
上传单文件到服务器应公司要求,在HTML5页面上实现上传文件到服务器,对于一个还没毕业的实习生菜鸟来说,这可不得了-----不会,网上各种百度,找各种博客还是没解决,最后还是请教了公司的大神,人家给卸了一个例子,然后根据人家写的终于把这个上传文件搞定。url:/adata/adata/payment/PaymentAction/upload.menu----指的是你Java接受信息的action路径_pathName=/adata//payment.jsp-----------指的是你HTML5页面的虚拟路径。alert;-------指的是从Java后台返回的信息。

上传单文件到服务器

应公司要求,在HTML5页面上实现上传文件到服务器,对于一个还没毕业的实习生菜鸟来说,这可不得了-----不会,网上各种百度,找各种博客还是没解决,最后还是请教了公司的大神,人家给卸了一个例子,然后根据人家写的终于把这个上传文件搞定。

好了,开始上代码。

HTML5代码:

 <form name="upform"action=""method="POST">   
                    <input type ="file"name="myfile1"id="myfile1"/><br/>   
                    <input type ="file"name="myfile2"id="myfile2"/><br/>备注:<input type="text"name="mydata"id="mydata"/><br/>  
                    <input type="button"value="确定"onclick="upload()"/><br/>   
</form> 

js代码:

FormData可以把它理解成一个虚拟的表单对象,它只有一个方法append,我们可以通过append向FormData里面添加各种需要提交的数据。

url:/adata/adata/payment/PaymentAction/upload.menu----指的是你Java接受信息的action路径

_pathName=/adata//payment.jsp-----------指的是你HTML5页面的虚拟路径。

alert(result);-------指的是从Java后台返回的信息。

function upload() {
mydata = document.getElementById("mydata").files[0];
formData = new FormData();
formData.append("mydata", mydata);
$.ajax({
contentType:"multipart/form-data",
url:"/adata/adata/payment/PaymentAction/upload.menu?_pathName=/adata//payment.jsp",
type:"POST",
data:formData,
dataType:"text",
processData: false, // 告诉jQuery不要去处理发送的数据
contentType: false, // 告诉jQuery不要去设置Content-Type请求头
success: function(result){
alert(result);
}
});
}

Java代码:

 String savePath = "d:/";//存储路径  
            String retMsg = "";//定义将返回给客户端的信息  
            try{  
                if(ServletFileUpload.isMultipartContent(request)) {  
                    List<FileItem> items = new ServletFileUpload(newDiskFileItemFactory()).parseRequest(request);  
                    for(FileItem item : items) {  
                        if (!item.isFormField()) {//过滤掉表单中非文件域  
                            String fileType = item.getName().substring(item.getName().lastIndexOf(".") + 1).toLowerCase();//文件类型  
                            String fileName = new Date().getTime() + "." + fileType; //保存的文件名  
                            String filePath = savePath + "\" + fileName; //保存的文件路径  
BufferedInputStream in = new BufferedInputStream(item.getInputStream());//获得文件输入流  
                            BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(new File(filePath)));//获得文件输出流  
                            org.apache.commons.fileupload.util.Streams.copy(in, out, true);//开始把文件写到指定的上传文件夹  
                            retMsg += "上传文件成功!";  
                            in.close();  
                            out.close();  
                        }   
                    }  
                }  
                response.setContentType("text/html;charset=utf8");  
                PrintWriter pw =response.getWriter();  
                pw.print(retMsg);  
                pw.flush();  
                pw.close();  
               //根据自己需要返回页面一个 retMsg
// return retMsg 证明上传成功
} catch(Exception e) { e.printStackTrace(); }

免责声明:文章转载自《单文件文件上传到服务器(HTML5+js+Java)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇细说RESTful API安全之认证授权Dubbo-URL、数据包结构下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

spark学习笔记-java调用spark简单demo

开发环境:         win10+idea+jdk1.8+scala2.12.4 具体步骤: 编写scala测试类 object MyTest { def main(args: Array[String]): Unit = { val conf = new SparkConf() conf.setAppName("MyTest"...

Java开发小技巧(五):HttpClient工具类

前言 大多数Java应用程序都会通过HTTP协议来调用接口访问各种网络资源,JDK也提供了相应的HTTP工具包,但是使用起来不够方便灵活,所以我们可以利用Apache的HttpClient来封装一个具有访问HTTP协议基本功能的高效工具类,为后续开发使用提供方便。 文章要点: HttpClient使用流程 工具类封装 使用实例 HttpClient...

自定义分页控件PageList

usingSystem; usingSystem.Collections; usingSystem.Collections.Generic; usingSystem.Linq; usingSystem.Web; namespaceCommons { public class PageList<T> : IEnumerable<T...

通过springboot提供请求参数以及返回值为XML的服务

说明:参考https://www.cnblogs.com/boshen-hzb/p/10334825.html实现 1:build.gradle增加以下依赖 compile group: 'com.fasterxml.jackson.dataformat', name: 'jackson-dataformat-xml', version: '2.11.1'...

Quartz定时任务

Quartz可以用来做什么? Quartz是一个任务调度框架。比如你遇到这样的问题 想每月25号,信用卡自动还款 想每年4月1日自己给当年暗恋女神发一封匿名贺卡 想每隔1小时,备份一下自己的爱情动作片 学习笔记到云盘 这些问题总结起来就是:在某一个有规律的时间点干某件事。并且时间的触发的条件可以非常复杂(比如每月最后一个工作日的17:50),复杂到需要...

5分钟让你学会用最高效的工具解析所有Json

如果你是一个Android开发工程师,学会解析Json字符串是你的必修课,本篇文章主要以实例的方式手把手教你怎么做,花五分钟时间阅读本篇文章你就可以学会解析所有的Json字符串啦。 准备: json字符串 fastjson HiJson格式化json工具 开始教程: fastjson: 常用工作中解析json的工具类有谷歌的GSON,jackson...