formdata上传文件

ajax方式上传文件:


 使用formdata对象,它是jquery的一个form对象。


通常我们在获取本地文件上传到数据库,获取的是本地路劲,并form表单提交,表单数据,然后使用IO流的方式读取数据。


那formdata对象的存在就可以解决form表单文件数据 无一不刷新的方式进行提交。


新建form表单对象 提交方式为post 提交类型需设置为  enctype='multipart/form-data'  将表单对象以二进制流的方式进行提交。数据类型为 json格式


参考代码:


  $("#subForm")
.append(
"<form class='form1style' id='form1' enctype='multipart/form-data'><table><tr><td><input type='file' name='jkk' id='jkk'>"
+ "<buttom  class='submit' onclick='daoru()'>导入</button></td></tr></table></form>"


$("input[id='jkk']").attr("onchange", "getPhoto(this)").attr("accept",
"text/plain");


var formData = new FormData($("#form1")[0]);
console.log(formData);
$.ajax({
url : 'FrmHealthOption.upload',
type : 'POST',
data : formData,
dataType : 'json',
async : false,
cache : false,
contentType : false,
processData : false,
success : function(returndata) {
if (returndata.success == "success") {
alert("导入成功");
} else if (returndata.err == 'status1') {
alert("导入数据不能为空");
} else if (returndata.err == 'status2') {
alert("请选择.txt文件");
} else if (returndata.err == 'status3') {
alert("请选择文件大于0kb的文件");
} else if (returndata.err == 'status4') {
alert("第" + returndata.j + "行数据错误,请检查导入数据");
}
window.location.href = 'FrmHealthOption';

}



获取参数代码文件并读取文件代码

JsonPage json = new JsonPage(this);
Map<String, Object> map = new HashMap<String, Object>();
// 处理文件上传
DiskFileItemFactory factory = new DiskFileItemFactory();
// 设置最大缓存
factory.setSizeThreshold(20 * 1024);
ServletFileUpload upload = new ServletFileUpload(factory);
// 获取所有文件列表
List<FileItem> uploadFiles = upload.parseRequest(getRequest());
// 取出上传的每一个文件
for (int i = 0; i < uploadFiles.size(); i++) {
FileItem fileItem = uploadFiles.get(i);
if (!fileItem.isFormField()) {// 文件名
if (fileItem.getSize() > 0) {
String fileName = fileItem.getName().toLowerCase();
if (fileName.endsWith(".txt")) {
InputStream is = fileItem.getInputStream();
String str = "";
InputStreamReader isr = new InputStreamReader(is, "utf-8");// InputStreamReaderGB2312
// 是字节流通向字符流的桥梁,
BufferedReader br = new BufferedReader(isr);
List<Object> list = new ArrayList<Object>();
while ((str = br.readLine()) != null) {
list.add(str);
}
br.close();
isr.close();
is.close();

猜你喜欢

转载自blog.csdn.net/u013362412/article/details/72817252