ajaxFileUpload上传文件简单示例
写在前面:
上传文件的方式有很多,最近在做项目的时候,一开始也试用了利用jquery的插件ajaxFileUpload来上传大文件,下面,用一个上传文件的简单例子,记录下,学习的过程~~~
还是老样子,上代码最明了啦。。
前台jsp页面:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%
String scheme = request.getScheme();
String serverName = request.getServerName();
String contextPath = request.getContextPath();
int port = request.getServerPort(); //网站的访问跟路径
String baseURL = scheme + "://" + serverName + ":" + port
+ contextPath;
request.setAttribute("baseURL", baseURL);
%>
<html>
<head>
<title>ajaxFileUpload文件上传简单示例</title>
<script src="${baseURL}/ligerui2/jquery/jquery-1.9.0.min.js" type="text/javascript"></script>
<%--引入文件上传插件--%>
<%--jquery文件上传插件--%>
<script src="${baseURL}/script/ajaxfileupload.js" type="text/javascript"></script> <script type="text/javascript"> //打开选择文件对话框
function text_click(){
$("#upload").click();
} //选择文件后触发事件函数
function test(){
//将文件名赋值到文本输入框
var fileName = $("#upload").val();
$("#fileText").val(fileName);
} //文件上传
function btn_upload(){
var fileName = $("#upload").val();
var fileName2 = $("#fileText").val();
if(fileName == "" || fileName2 == ""){
alert("请先选择哦~~~");
} $.ajaxFileUpload({ //Jquery插件上传文件
url: '${baseURL}/uploadFile3',
secureuri: false,//是否启用安全提交 默认为false
fileElementId: "upload", //type="file"的id
dataType: "text", //返回值类型 success: function (data)
{
if(data.indexOf("success")!=-1){//上传成功 alert("上传成功!");
}else{
alert("上传失败。。");
} }, }); }
</script> </head>
<body style="padding:10px">
<div id="layout1">
<div >
文件名(上传): <input type="text" style="height: 25px;width: 250px;" id="fileText" onclick="text_click()" /> <button onclick="btn_upload()">开始上传</button>
</div> <%--将文件隐藏,由点击输入框来触发选择文件--%>
<div hidden="hidden">
<%--这里不要忘记name,因为在后台是是以name来接收的--%>
<input type="file" id="upload" name="upload" onchange="test();">
</div>
</div>
</body>
</html>
后台action:
/**
* Description:com.ims.action
* Author: Eleven
* Date: 2017/12/26 10:50
*/
@Controller("FileAction")
public class FileAction extends BaseAction{ //记得提供对应的get set方法
//上传文件对象(和表单type=file的name值一致)
private File upload;
//文件名
private String uploadFileName;
//上传类型
private String uploadContentType; public void uploadFile3() throws Exception{ String str = "D:/upload33/"; //文件保存路径
System.out.println("文件路径===="+uploadFileName);
String realPath = str + uploadFileName;
File tmp =new File(realPath);
FileUtils.copyFile(upload, tmp);
System.out.println("上传文件"+uploadFileName+",大小:"+(upload.length()/1024/1024)+"M"); //当文件上传成功,用流写消息给页面
PrintWriter writer = ServletActionContext.getResponse().getWriter();
writer.print("success"); } public File getUpload() {
return upload;
} public void setUpload(File upload) {
this.upload = upload;
} public String getUploadFileName() {
return uploadFileName;
} public void setUploadFileName(String uploadFileName) {
this.uploadFileName = uploadFileName;
} public String getUploadContentType() {
return uploadContentType;
} public void setUploadContentType(String uploadContentType) {
this.uploadContentType = uploadContentType;
}
}
这里还是说一下,对于文件的接收,其命名都是要以上传文件对象名开头的,比如文件对象变量名为upload,则接收文件名的变量为uploadFileName,这里稍微注意下。
struts.xml配置:
<action name="uploadFile3" class="FileAction" method="uploadFile3">
</action>
到这里,文件上传的简单功能就已经完成了,下面,运行截图:

对于前面开头说的是大文件的上传,那么这个上传文件的最大限度是多少?在测试过程中发现,在struts.xml文件中可以控制上传文件的大小:
<!--这里可以控制整个项目中上传文件的大小-->
<constant name="struts.multipart.maxSize" value="7340000"/>
我这里举例配置的value值是7340000,假设我现在上传文件大小有7M,7 * 1024 * 1024 = 7340032,比我设置的value值要大,故此时上传文件会失败,抛出异常:
org.apache.commons.fileupload.FileUploadBase$SizeLimitExceededException: the request was rejected because its size (7576262) exceeds the configured maximum (7340000)
所以我们可以通过设置这个值,来控制上传文件的大小,查阅资料,也是可以局部进行控制上传文件的大小的,即设置fileUpload拦截器,这里就不过多进行设置了,等以后有用到,再去研究也不迟。
开心。。。。。。。
ajaxFileUpload上传文件简单示例的更多相关文章
- ajaxFileUpload上传文件后提示下载的问题
在某些版本浏览器下ajaxFileUpload上传文件会提示下载, 1:为什么? 可以观察到,即便返回 JsonResult 在返回的头中也没有任何消息体,直接理解为文本了. 2:解决方案 前端: f ...
- 在使用 AjaxFileUpload 上传文件时,在项目发布到 iis 后,图片不能预览
在使用 AjaxFileUpload 上传文件时,图片已经上传成功了,在站点没有发布时,可以预览,可是在项目发布到 iis 后,图片就不能预览,在网上找了很多的方案也没解决,最后的解决方案如下: 1 ...
- ajaxFileUpload上传文件没反应
调用jquery的ajaxFileUpload异步上传文件,IE浏览器不进入success问题 原因:json转换异常,ie浏览器处理后的返回json没有<pre>标签,直接是完整的jso ...
- springmvc+ajaxFileUpload上传文件(前后台彻底分离的情况下)
首先是导入jar包: web.xml: <servlet> <servlet-name>mvc-dispatcher</servlet-name> <serv ...
- Jquery+ajaxfileupload上传文件
1.说明 ajaxfileupload.js是一款jQuery插件,用于通过ajax上传文件. 下载地址:http://files.cnblogs.com/files/lengzhan/ajaxfil ...
- SpringMvc通过controller上传文件代码示例
上传文件这个功能用的比较多,不难,但是每次写都很别扭.记录在此,以备以后copy用. package com.**.**.**.web.api; import io.swagger.annotatio ...
- springMVC上传文件简单案例
html <form name="Form2" action="/SpringMVC006/fileUpload2" method="post& ...
- 解决ajaxfileupload上传文件在IE浏览器返回data为空问题
关于ajaxfileupload,建议还是别用,已经没有人维护的脚本了,笔者就是入了这个坑. 在IE浏览器中ajaxfileupload返回data为空 jq.ajaxFileUpload ( { u ...
- Dropzone.js拖拽上传(简单示例)
今天碰到一个需求,页面上有“点击上传”的按钮,点击可以执行上传事件,从桌面拖拽图片拖拽到任何地方,都可以执行上传,且不影响点击按钮事件.下面是简单示例: 简单示例如下: <!DOCTYPE ht ...
随机推荐
- python学习总结笔记(一)
1.raw_input("请输入:")提示录入信息,读取录入的字符串返回你录入的字符串2.os.environ 获取所有系统的环境变量,返回一个字典.3.str与repr区别str ...
- Java中static关键字的详解
static关键字可以修饰方法和成员变量(不可以修饰局部变量,但是可以修饰内部类). static关键字方便在没有创建对象的情况下来进行调用(方法/变量). 很显然,被static关键字修饰的方法或者 ...
- 斯坦福大学自然语言处理第一课——引言(Introduction)
一.课程介绍 斯坦福大学于2012年3月在Coursera启动了在线自然语言处理课程,由NLP领域大牛Dan Jurafsky 和 Chirs Manning教授授课:https://class.co ...
- 关于苹果APP的上架整理
由于苹果的机制,在非越狱机器上安装应用必须通过官方的App Store,开发者开发好应用后上传App Store,也需要通过审核等环节.AppCan作为一个跨主流平台的一个开发平台,也对ipa包上传A ...
- 最耗性能的SQL语句
设计优化–常见杀手级SQL •SELECT * vsSELECT col1, col2 •ORDER BY RAND() •LIMIT huge_num, offset •SELECT COUNT(* ...
- 树莓派远程桌面配置-开机自启SSH
必须先安装tightvncserver sudo apt-get install tightvncserver 再安装xrdp服务. sudo apt-get install xrdp 如果开着防火墙 ...
- ios协议和委托
在iPhone开发协议和委托是常接触到的东西,到底什么是协议什么是委托,他们什么关系? 一 协议 (1)协议相当于没有与类相关联的接口,他申明一组方法,列出他的参数和返回值,共享给其他类使用,然后不进 ...
- idea—— 模版配置
修改File Header: /** * @author: ${USER} Date: ${DATE} Time: ${TIME} */ 新增Package Header: /* * Copyrigh ...
- Loadrunner手动编写包含事务、检查点、关联等元素的脚本实例
一.前言: 本文适合初学者,包含很多细节,包括 二.准备: 1.以虚拟机中的Linux系统作为服务器,开启bugfree服务. 2.以fiddler作为抓包工具,辅助脚本开发. 3.脚本流程:bugf ...
- 关于PHP输出字符串多了两个字节的BUG
近日IOS开发那边小伙伴跟我说,解析服务器发回的字符信息时候出现bug. 明明利用Log输出来的是字符串"hello" 可是利用length计算就是多出来两个字节,比如这里是7. ...