插件:ajaxfileupload.js
jsp:
1、引入该js
2、写一个input。例如<input type="file" id="id_file" name="file">
3、写上传的js
<script type="text/JavaScript">
function ajaxFileUpload() {
var obj_file = document.getElementById("id_file");
var filesize = 0;
fileSize = obj_file.files[0].size;
if(fileSize>512000){
alert("图片不能超过500kb!");
$("#id_file").val="";
}else{
$.ajaxFileUpload({
url :'<%=basePath%>sjtp/tempimg.do',
//用于文件上传的服务器端请求地址
secureuri : false, //一般设置为false
fileElementId : 'id_file', //文件上传空间的id属性 <input type="file" id="id_file" name="file" />
type : 'post',
dataType : 'HTML', //返回值类型 一般设置为json
success : function(data, status) //服务器成功响应处理函数
{
//这里每个人业务逻辑不一样,就不做实例了.
},
error : function(data, status, e)//服务器响应失败处理函数
{
alert(e);
}
})
return false;
}
}
</script>
页面上传js完成,现在是后台
说下我的后台部分业务,每天上传的图片都是存在当天的文件夹里的。比如今天2016年4月23日,那么图片存放的文件夹就是20160423的。
后台代码:
package com.oceansoft.swl.controller;
import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
/**
* 图片上传
* @author LL
*
* 2015-7-24下午3:09:27
*/
@Controller
@RequestMapping("sjSptp")
public class SjTpscController {
@RequestMapping("/sptp.do")
public void addCategory(HttpServletRequest request, String path1,
String path2, HttpServletResponse actioncontext) {
//获取当前年月日
Date d = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
String dateNowStr = sdf.format(d);
//System.out.println("添加图片");
String re=null;
String sub=null;
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
MultipartFile imgFile1 = multipartRequest.getFile("filesptp");// 获取上次文件名
MultipartFile imgFile2 = multipartRequest.getFile("file");
//System.out.println("----->" + imgFile1.getOriginalFilename());
List<String> fileTypes = new ArrayList<String>();
fileTypes.add("jpg");
fileTypes.add("jpeg");
fileTypes.add("bmp");
fileTypes.add("gif");
fileTypes.add("png");
fileTypes.add("gif");
//String sssssString = imgFile1.getOriginalFilename();
//System.out.println(sssssString);
if(null != imgFile1){
if (!(imgFile1.getOriginalFilename() == null || "".equals(imgFile1
.getOriginalFilename()))) {
// String uploadfile = request.getServletContext().getRealPath("upload");
String uploadfile = request.getSession().getServletContext().getRealPath("/")
+"upload"+"\\";
//System.out.println("--->" + path1 + "--->" + path2);
//System.out.println("上传路径---->" + uploadfile);
// File file1 = this.getFile(imgFile1, path2, path1, fileTypes);
String path = uploadfile + "/"+dateNowStr;
File targetFile = new File(path);
if(!targetFile.exists()){
targetFile.mkdirs();
}
File file1 = this.getFile(imgFile1, path, fileTypes);
//System.out.println("完成上传------>" + file1);
re=file1.toString();
//int i=re.lastIndexOf("\\");
sub=re.substring(re.lastIndexOf("\\")+1);
//System.out.println("截取--->"+sub);
String tpbt = path + sub ;
//判断文件是否存在 标题图片
File targetFileTwo = new File(tpbt);
if(!targetFileTwo.exists()){
targetFile.mkdirs();
}
//hdzx.setTpbt(tpbt);
//request.getSession().setAttribute("sss", dateNowStr);
//request.getSession().setAttribute("fileName", imgFile1);
}
actioncontext.setContentType("text/html");
PrintWriter out;
try {
out = actioncontext.getWriter();
out.println("upload/"+dateNowStr+"/" + sub);
//out.flush();
//out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
// private File getFile(MultipartFile imgFile, String typeName,
private File getFile(MultipartFile imgFile, String brandName, List fileTypes) {
String fileName = imgFile.getOriginalFilename();
// 获取上传文件类型的扩展名,先得到.的位置,再截取从.的下一个位置到文件的最后,最后得到扩展名
String ext = fileName.substring(fileName.lastIndexOf(".") + 1,
fileName.length());
//System.out.println("获取扩展名---->" + ext);
// 对扩展名进行小写转换
ext = ext.toLowerCase();
File file = null;
if (fileTypes.contains(ext)) { // 如果扩展名属于允许上传的类型,则创建文件
// file = this.creatFolder(typeName, brandName, fileName);
file = this.creatFolder(brandName, fileName);
//System.out.println("完整路径--->" + file);
try {
imgFile.transferTo(file); // 保存上传的文件
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
return file;
}
// private File creatFolder(String typeName, String brandName, String
// fileName) {
private File creatFolder(String brandName, String fileName) {
File file = null;
// typeName = typeName.replaceAll("/", ""); // 去掉"/"
// typeName = typeName.replaceAll(" ", ""); // 替换半角空格
// typeName = typeName.replaceAll(" ", ""); // 替换全角空格
// brandName = brandName.replaceAll("/", ""); // 去掉"/"
// brandName = brandName.replaceAll(" ", ""); // 替换半角空格
// brandName = brandName.replaceAll(" ", ""); // 替换全角空格
// File firstFolder = new File("c:/" + typeName); // 一级文件夹
File firstFolder = new File(brandName);
//System.out.println("文件路径--->" + firstFolder);
String suffix = fileName.substring(fileName.lastIndexOf('.'));
//System.out.println("截取文件后缀--->" + suffix);
String prefix = System.currentTimeMillis() + "";
String newfileName = prefix + suffix;
if (firstFolder.exists()) { // 如果一级文件夹存在,则检测二级文件夹
// File secondFolder = new File(firstFolder, brandName);
// if (secondFolder.exists()) { // 如果二级文件夹也存在,则创建文件
// file = new File(secondFolder, fileName);
// } else { // 如果二级文件夹不存在,则创建二级文件夹
// secondFolder.mkdir();
// file = new File(secondFolder, fileName); // 创建完二级文件夹后,再合建文件
// file = new File(fileName);
//System.out.println("现在路径---->" + brandName);
file = new File(brandName + "\\" + newfileName);
// }
} else { // 如果一级不存在,则创建一级文件夹
firstFolder.mkdirs();
// File secondFolder = new File(brandName);
// if (secondFolder.exists()) { // 如果二级文件夹也存在,则创建文件
// file = new File(secondFolder, fileName);
// } else { // 如果二级文件夹不存在,则创建二级文件夹
// secondFolder.mkdir();
// file = new File(secondFolder, fileName);
//System.out.println("现在路径---->" + brandName);
file = new File(brandName + "\\" + newfileName);
// }
}
return file;
}
}
ok。结束
http://download.csdn.NET/detail/leilei19920808/9500342 插件下载地址。
转至http://blog.csdn.net/leilei19920808/article/details/51227262