jsp页面

<%@ page language="java" pageEncoding="UTF-8"%>
<!DOCTYPE HTML>
<html>
<head>
<script type="text/javascript" src="./js/jquery-3.5.1.min.js"></script>
<script type="text/javascript" src="./js/vue.js"></script>
<title>文件上传</title>
</head>
<body>
<input type="file" id="UUploadedFile" name="fileupload" onchange="UUploadedFile()">
<script type="text/javascript">
function UUploadedFile() {
var formData = new FormData();
formData.append('file', $('#UUploadedFile')[0].files[0]);
$.ajax({
async: false,//要求同步 不是不需看你的需求
url : "${pageContext.request.contextPath}/TestuploadFile.do",
type : 'POST',
data : formData,
dataType: "json",
processData : false, //必须false才会避开jQuery对 formdata 的默认处理
contentType : false, //必须false才会自动加上正确的Content-Type
success: function (data) {
if (data.success ) {
alert("上传完成!");
}else{
alert("上传失败!");
}
},
});
}
</script>
</body>
</html>

  //java后端代码

package com.zjn.controller;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.HashMap;
import java.util.List;
import java.util.Map; import javax.servlet.http.HttpServletRequest; import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
@Controller
public class FileUpload { @RequestMapping(value = "/TestuploadFile.do")
@ResponseBody
public Map<String, Object> TestuploadFile(HttpServletRequest request){
Map<String, Object> modelMap=new HashMap<String, Object>();
try {
MultipartHttpServletRequest mpRequest = (MultipartHttpServletRequest) request;
MultipartFile file = mpRequest.getFile("file");
System.out.println("file===="+file);
long fileSize = file.getSize();//获取文件大小
if (fileSize <= 0) {
modelMap.put("success", false);
modelMap.put("MESSAGE", "上传失败!上传的文件为空!");
return modelMap;
}
if (fileSize > 200 * 1024 * 1024) {//限制上传文件大小为200M
modelMap.put("success", false);
modelMap.put("MESSAGE", "上传失败!上传的文件大小超出了限制!");
return modelMap;
}
InputStream in = file.getInputStream();//读取上传的文件流
OutputStream out = new FileOutputStream("D:/"+file.getOriginalFilename());
File outFile=new File("D:/"+file.getOriginalFilename());//把文件输出到D盘下
byte[] buffer = new byte[1024];
int length;
while ((length = in.read(buffer)) > 0) {
out.write(buffer, 0, length);
}
in.close();
out.close();
if(outFile.exists()){//判断文件是否存在
modelMap.put("success", true);
modelMap.put("MESSAGE", "上传完成!");
}else {
modelMap.put("success", false);
modelMap.put("MESSAGE", "上传失败!");
return modelMap;
}
} catch (IOException e) {
modelMap.put("success", false);
modelMap.put("MESSAGE", "上传失败!");
return modelMap;
}
return modelMap;
} }

  

ajax上传单个文件的更多相关文章

  1. js实现上传单个文件

    js上传文件:js 上传单个文件(任意大小) 疯狂代码 http://www.CrazyCoder.cn/ :http:/www.CrazyCoder.cn/Javascript/Article832 ...

  2. input文件上传(上传单个文件/多选文件/文件夹、拖拽上传、分片上传)

    //上传单个/多个文件 <input title="点击选择文件" id="h5Input1" multiple="" accept= ...

  3. 〖Linux〗上传单个文件到FTP的Shell命令行(函数)

    #!/bin/bash - #=============================================================================== # # F ...

  4. resteasy上传单个文件/多个文件到阿里云服务器

    代码如下: ExcelServerController.java package com.xgt.controller; import com.xgt.bean.bs.ExcelBean; impor ...

  5. plupload如何限制上传文件数量,限制只能上传单个文件

    1 完整代码 $(function() { $("#uploader").pluploadQueue({ runtimes : 'html5,gears,flash,silverl ...

  6. YII2表单中上传单个文件

    有些时候我们提交的表单中含有文件.怎么样让表单里的数据和文件一起提交. 我的数据表tb_user内容如下: CREATE TABLE `tb_user` ( `id` int(11) unsigned ...

  7. Spring Mvc:用MultiPartFile上传单个文件,多个文件

    1.单个文件上传步骤: 添加Apache文件上传jar包 首先需要下载两个apache上传文件的jar包,commons-fileupload-1.3.1jar,commons-io-2.4.jar ...

  8. struts2上传单个文件

    项目目录: struts.xml配置: <constant name="struts.enable.DynamicMethodInvocation" value=" ...

  9. resteay上传单个文件/多个文件到本地

    代码如下: CADLocalControlle.java package com.xgt.controller; import com.xgt.common.BaseController; impor ...

随机推荐

  1. mq checkpoint文件

    记录comitlog,consumeQueue,Index文件的刷盘时间点,文件固定长度4k,其中只用该文件的24个字节,其存储格式: 8字节physicMsgtimestamp+8字节logicsM ...

  2. cobbler 装机服务

    一.Cobbler 安装 $ yum install -y epel-release $ yum install -y cobbler cobbler-web pykickstart debmirro ...

  3. Lsi卡和IB卡在CentOS中升级

    LSI 9271 步骤1:准备升级工具和固件包 rpm -ivh MegaCli-8.07.14-1.noarch.rpm [root@phegdata01 ~]# unzip 23-34-0-000 ...

  4. Dotnet Core下的Channel, 你用了吗?

    今天给大家分享一个微软官方的好东西:Channel.   前言 今天给大家分享一个微软官方的生产者/消费者方案的特性解决:Channel. Channel在System.Threading.Chann ...

  5. 20190626_二次开发BarTender打印机_C#代码_一边读取TID_一边打印_打印机POSTEK

    demo代码如下: private void btnPrint_Click(object sender, EventArgs e) { if (this.btnPrint.Text == " ...

  6. 基于gRPC的注册发现与负载均衡的原理和实战

    gRPC是一个现代的.高性能.开源的和语言无关的通用RPC框架,基于HTTP2协议设计,序列化使用PB(Protocol Buffer),PB是一种语言无关的高性能序列化框架,基于HTTP2+PB保证 ...

  7. 老猿学5G扫盲贴:3GPP规范中部分与计费相关的规范序列文档

    专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 老猿学5G博文目录 经咨询华为公司的相关专家,以及结合3GPP目录下载 ...

  8. 老猿学5G扫盲贴:N6接口用户平面协议栈对应的网络分层模型

    在网络通信模型中,都对应有分层的网络结构,如开放式系统互联(OSI)的七层模型(物理层.数据链路层.网络层.传输层.会话层.表示层和应用层)以及TCP/IP四层(网络接口层.网络层.传输层和应用层)模 ...

  9. Day6 Scrum 冲刺博客

    一.站立式会议# 1. 会议照片 2. 工作进度+燃尽图  团队成员 昨日完成工作  今日工作计划 遇到的困难  周梓波  将方块旋转变形  添加键盘监听事件  不熟悉监听事件的操作  纪昂学  左右 ...

  10. 【opencv】学习笔记

    安装 此笔记仅对python36实用 OpenCV装3.4.1.15 指令:pip install -i https://pypi.tuna.tsinghua.edu.cn/simple opencv ...