ssh上传图片
2016-07-14 09:24
387 查看
昨天遇到了 前台ajax 发送图片后台接收不到的问题,原来是被struts拦截了。在struts 配置了
<bean type= "org.apache.struts2.dispatcher.multipart.MultiPartRequest"
name= "myRequestParser" class= "com.bjxstr.filter.RequestParseWrapper"
scope= "default" optional= "true"/>
<constant name= "struts.multipart.handler" value= "myRequestParser" />
生成的拦截器:
RequestParseWrapper extends JakartaMultiPartRequest {
public void parse(HttpServletRequest servletRequest, String saveDir)throws IOException{
}
前台代码:
var uplaod = {
fileInput: $("#lic-img").get(0),
fileFilter: [],
filter: function(files){
var arrFiles = [];
//过滤文件图片大小
for (var i = 0,file;file=files[i]; i++) {
if (file.type.indexOf('image') === 0) {
if (file.size >= 512000) {
alert("该文件"+file.name+"过大,请上传小于500kb图片");
}else{
arrFiles.push(file);
}
}else{
alert("该文件"+file.name+"不是图片");
}
}
// console.log(arrFiles);
return arrFiles;
},
//取得图片
getImg: function(e){
var files = e.target.files || e.dataTransfer.files;
this.fileFilter = this.filter(files);
return this;
},
//上传图片
onUpImg: function(){
var that = this;
var formData = new FormData();
formData.append('upload', this.fileFilter[0]);
$.ajax({
url: 'ajaxUploadImg',
type: 'POST',
processData:false,
contentType: false,
data: formData,
success: function(data){
console.log(data)
}
})
},
//图片初始化
init: function() {
var that = this;
if (this.fileInput) {
this.fileInput.addEventListener("change", function (e) {
that.getImg(e);
that.onUpImg();
}, false);
}
}
};
uplaod.init();
});
后台代码:
DiskFileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
List<DiskFileItem> items = upload.parseRequest(request);
for (DiskFileItem fileItem : items) {
if (fileItem != null)
{
System.out.println("哈哈哈");
SimpleDateFormat df = new SimpleDateFormat("yyyyMMdd");
//构建文件新名字,打上时间戳加上随机数
String newFileName=df.format(new Date())+Values.getRandomNum(6)+".jpg";
System.out.println("http://sfb.zshifu.cn/"+newFileName+"@!img-service");
AliyunOss.putShifuObject("shifubang",newFileName,fileItem);
result = "http://sfb.zshifu.cn/"+newFileName+"@!img-service";
System.out.println("result=="+result);
response.getWriter().print(result);//帐号已注册
}
}
<bean type= "org.apache.struts2.dispatcher.multipart.MultiPartRequest"
name= "myRequestParser" class= "com.bjxstr.filter.RequestParseWrapper"
scope= "default" optional= "true"/>
<constant name= "struts.multipart.handler" value= "myRequestParser" />
生成的拦截器:
RequestParseWrapper extends JakartaMultiPartRequest {
public void parse(HttpServletRequest servletRequest, String saveDir)throws IOException{
}
前台代码:
var uplaod = {
fileInput: $("#lic-img").get(0),
fileFilter: [],
filter: function(files){
var arrFiles = [];
//过滤文件图片大小
for (var i = 0,file;file=files[i]; i++) {
if (file.type.indexOf('image') === 0) {
if (file.size >= 512000) {
alert("该文件"+file.name+"过大,请上传小于500kb图片");
}else{
arrFiles.push(file);
}
}else{
alert("该文件"+file.name+"不是图片");
}
}
// console.log(arrFiles);
return arrFiles;
},
//取得图片
getImg: function(e){
var files = e.target.files || e.dataTransfer.files;
this.fileFilter = this.filter(files);
return this;
},
//上传图片
onUpImg: function(){
var that = this;
var formData = new FormData();
formData.append('upload', this.fileFilter[0]);
$.ajax({
url: 'ajaxUploadImg',
type: 'POST',
processData:false,
contentType: false,
data: formData,
success: function(data){
console.log(data)
}
})
},
//图片初始化
init: function() {
var that = this;
if (this.fileInput) {
this.fileInput.addEventListener("change", function (e) {
that.getImg(e);
that.onUpImg();
}, false);
}
}
};
uplaod.init();
});
后台代码:
DiskFileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
List<DiskFileItem> items = upload.parseRequest(request);
for (DiskFileItem fileItem : items) {
if (fileItem != null)
{
System.out.println("哈哈哈");
SimpleDateFormat df = new SimpleDateFormat("yyyyMMdd");
//构建文件新名字,打上时间戳加上随机数
String newFileName=df.format(new Date())+Values.getRandomNum(6)+".jpg";
System.out.println("http://sfb.zshifu.cn/"+newFileName+"@!img-service");
AliyunOss.putShifuObject("shifubang",newFileName,fileItem);
result = "http://sfb.zshifu.cn/"+newFileName+"@!img-service";
System.out.println("result=="+result);
response.getWriter().print(result);//帐号已注册
}
}
相关文章推荐
- NSDictionary与NSMutableDictionary的应用小结
- 解救小Q
- 小算法--数组中元素的移动
- Android Wear开发 - 数据通讯 - 第二节 : 数据的发送与接收
- mydumper原理3
- Yii安装EClientScript插件扩展实现css,js文件代码压缩合并加载功能
- F
- 【代码笔记】iOS-一个tableView,两个section
- 【代码笔记】iOS-一个tableView,两个section
- Android bitmap图片处理
- 程序的基本结构
- Hello world!
- 实时控制与通信系统
- 创建序列
- 用mini2440开发板学习韦东山毕业班移植最新的u-boot支持nand flash
- bzoj3670 Noi2014动物园 - exkmp
- Sensor信号输出YUV、RGB、RAW DATA、JPEG 4种方式区别
- A sequence of N positive integers (10 < N < 100 000), each of them less than or equal 10000, and a p
- Linux 存储结构与磁盘划分
- PAT 团体程序设计天梯赛-练习集 L1-016. 查验身份证