ajax上传文件到servlet

  1. js
$(function() {// js判断文件大小function findSize(field_id) {let fileInput = $("#"+field_id)[0];let byteSize  = fileInput.files[0].size;return ( Math.ceil(byteSize / 1024 / 1024) ); // Size returned in MB.}// 上传图片按钮 <button type="button"> upload </button>$("#upload-img").click(function () {if (!$("#show-img").prop("src")) {return;}//let imgSize = $("#upload-input")[0].files[0].size;let imgSize = findSize("upload-input");// console.log(imgSize);if (imgSize >= 2) {//$("#myModal1").modal('show');alert('请选择2MB以下的图片');return;}let formData = new FormData($("#img-form")[0]);$.ajax({url: "/WebMusicPlayer/uploadFile",data: formData,type: "post",cache: false,processData: false,/*无需数据处理*/contentType: false,success: function (img_name) {// img_name in server$("#music-list-img").val(img_name);// change current page image$("#list-img").css('display', 'inline');$("#list-img").prop('src', $("#show-img").prop('src'));// close modal$("#upd-img").modal('hide');},error: function (e) {console.log(e);}});});});
  1. servlet (jsp smart upload)
package com.lovely.action;import com.jspsmart.upload.Files;
import com.jspsmart.upload.SmartUpload;
import com.jspsmart.upload.SmartUploadException;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.UUID;/*** use smart_upload upload (song_list and song) files..*/
@WebServlet(name = "UploadFile", urlPatterns = "/uploadFile")
public class UploadFile extends HttpServlet {public static String path;protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//1.创建文件上传对象SmartUpload su = new SmartUpload();//2.初始化文件上传对象su.initialize(getServletConfig(), req, resp);//3.设置相关属性(限制条件)su.setCharset("utf-8");//设置允许上传的文件类型su.setAllowedFilesList("jpg,png,bmp");//su.setAllowedFilesList("txt");//设置允许上传的文件的最大值(单位字节)//设置 2MBsu.setMaxFileSize(1024*1024*2);//设置不允许上传的文件类型
//		try {
//			su.setDeniedFilesList("zip,7z");
//		} catch (SQLException e) {
//			e.printStackTrace();
//		}try {//4.文件上传su.upload();//取其他数据//必须在upload()方法之后//使用su.getRequest()System.out.println("用户名:"+su.getRequest().getParameter("userName"));//5.获得上传文件Files files = su.getFiles();com.jspsmart.upload.File f = files.getFile(0);//6.保存文件到服务器指定目录//使用Servlet上下文对象获得项目的根路径(真实路径)String filePath = getServletContext().getRealPath("/music-manage/img");System.out.println("项目根路径:"+filePath);File file = new File(filePath);//判断文件夹是否存在if(!file.exists()){file.mkdirs();}//保存文件//生成全球唯一字符串UUID.randomUUID())//获得文件后缀 f.getFileExt()String fileName = UUID.randomUUID()+"."+f.getFileExt();filePath = filePath+"/"+ fileName;f.saveAs(filePath);System.out.println("上传成功");resp.setContentType("text/plain;charset=utf-8");PrintWriter out = resp.getWriter();out.print(fileName);out.close();} catch (SmartUploadException e) {e.printStackTrace();System.out.println("文件上传失败");}}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/420693.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

DHCP中继

拓扑如下&#xff1a; R0配置&#xff1a; (config)#ip dhcp pool aaa (dhcp-config)#network 8.8.8.0 255.255.255.0 (dhcp-config)#default-router 8.8.8.1 (dhcp-config)#dns-server 114.114.114.114(config)#ip dhcp pool bbb (dhcp-config)#network 88.88.88.0 255.255.25…

maven项目,如何导入本地jar包

maven项目导入本地jar包&#xff0c;然后以pom坐标的方式引入项目。为何有这种奇怪的需求&#xff1f; maven 上找不到了对应的jar包了&#xff0c;没有对应的坐标。导入方式 将你本地的项目放入maven仓库&#xff0c;使用maven命令。而不是简单的复制进maven仓库。参数说明&…

标签管理(转载)

转自&#xff1a;http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/0013762144381812a168659b3dd4610b4229d81de5056cc000 发布一个版本时&#xff0c;我们通常先在版本库中打一个标签&#xff0c;这样&#xff0c;就唯一确定了打标签时刻…

centos7配置jdk1.8环境变量

目录1. Oracle下载linux版本的jdk2. 上传到linux服务器3. 解压4. 编辑环境变量1. Oracle下载linux版本的jdk https://www.oracle.com/cn/java/technologies/javase/javase-jdk8-downloads.html 2. 上传到linux服务器 使用工具 mobaxterm 上传jdk https://mobaxterm.mobatek…

【iOS开发每日小笔记(二)】gitHub上的开源“瀑布流”使用心得

这篇文章是我的【iOS开发每日小笔记】系列中的一片&#xff0c;记录的是今天在开发工作中遇到的&#xff0c;可以用很短的文章或很小的demo演示解释出来的小心得小技巧。它们可能会给用户体验、代码效率得到一些提升&#xff0c;或是之前自己没有接触过的技术&#xff0c;很开心…

spring mvc 入门DispatcherServlet转发

目录一&#xff0c;配置相关二&#xff0c;java类测试三&#xff0c;测试一&#xff0c;配置相关 maven坐标依赖 <dependencies><!-- spring context --><dependency><groupId>org.springframework</groupId><artifactId>spring-context&…

web音乐播放器+后台歌曲,歌单管理

项目地址 https://github.com/sevenyoungairye/web_music_palyer技术点 - 基于h5, css3, js, bootstarp, jquery,- 后台基于structs1, spring, spring-jdbcTemplate功能 - 用户curd- 歌单curd&#xff0c;为歌单新增&#xff0c;移除歌曲- 上传歌曲&#xff0c;修改歌曲- 查询…

Oracle WorkFlow(工作流)(一)

转载自:http://hi.baidu.com/quce227/item/3dee702c66466a0343634a58 1概述 1.1工作流的概念 Workflow是EBS的基础架构技术之一&#xff0c;系统中大部分流程性的通知和审批控制、账户按规则自动生成都是通过Workflow实现的1.2工作流的目的 1&#xff0e; 在业务流程中发送、提…

spring mvc框架请求注解解析,内部资源视图解析器

请看spring DispatcherServlet入门 目录1. RequestMapping2. InternalResourceViewResolver1. RequestMapping 作用&#xff1a;用于建立请求url和处理请求方法之间的对应关系 位置&#xff1a;类上&#xff0c;请求url的第一级访问目录。此处不写的话&#xff0c;相当于应用的…

boot-1学习

Bootstrap-1学习Bootstrap介绍一. 响应式布局(css3的技术)1. 什么是响应式2. 响应式网页必要的要求3.移动设备的适配 --视口-- 这部分在pc端上没用二.Bootstrap1.起步2.全局cssBootstrap介绍 bootrap简称boot,是一个简洁的,直接的,强悍的,直接的一个框架,这是官方对它的描述.主…

UNIX时间戳及日期的转换与计算

UNIX时间戳是保存日期和时间的一种紧凑简洁的方法&#xff0c;是大多数UNIX系统中保存当前日期和时间的一种方法&#xff0c;也是在大多数计算机语言中表示日期和时间的一种标准格式。以32位整数表示格林威治标准时间&#xff0c;例如&#xff0c;使用证书11230499325表示当前时…

spring mvc响应数据方式

目录1. 页面跳转2. 回写数据ResponseBody注解1. 页面跳转 转发&#xff0c;如果有视图解析器&#xff0c;要写全路径/pages/success.jsp RequestMapping("/save4") public String save4(HttpServletRequest req) {req.setAttribute("key", "value 4…

boot栅格布局

栅格布局 使用boot必须熟练使用的三个知识点,媒体查询, 栅格布局,scss 为什么要使用栅格布局? 项目中做布局的方式 table布局csshtml布局栅格布局简单,容易控制语义正确,渲染效率高简单(类似于table)非常容易控制,渲染效率高,语义正确,支持响应式效率低,语义错误控制比较麻…

Math.random()

Math.random();Math.random()是令系统随机选取大于等于 0.0 且小于 1.0 的伪随机 double 值,[0,1)返回指定范围的随机数[m-n)的公式 &#xff1a;Math.random()*(n-m)m&#xff1b;返回指定范围的随机数[m-n](区间不同)的公式 &#xff1a;Math.random()*(n-m1)m&#xff1b;eg…

spring mvc 接收页面数据

目录1. 基本类型的数据封装2. pojo&#xff08;bean)类型的封装3. 数组类型4. list集合类型1. 基本类型的数据封装 //http://localhost:8080/spring_mvc_01/user/save8?namebitqian&age19 RequestMapping(value "/save8") ResponseBody public void save8(Str…