您的位置:首页 > 其它

AjaxFileUpload实现文件异步上传

2015-06-03 18:33 429 查看
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ include file="/header.jsp"%>
<!DOCTYPE html>
<html>
<head>
<script src="/jscript/jquery-1.4.2.min.js" type="text/javascript"></script>
<script src="/jscript/ajaxfileupload.js" type="text/javascript"></script>

<title>新增</title>

</head>
<body>
<style type="text/css">
.addcss {
font-size: 18px;
font-family: '微软雅黑';
margin-left: 10px;
margin-top: 20px;
width: 95%;
}

.addcss tr {
line-height: 35px;
}

.addcss tr td {
border: 1px solid #F2F2F2;
text-align: center;
}

.addcss tr td input {
line-height: 30px;
border: 1px solid #ccc;
width: 200px;
height: 30px;
}

.addcss tr td select {
line-height: 30px;
border: 1px solid #ccc;
width: 200px;
height: 30px;
}
</style>
<form class="ad_form" id="ad_form" action="/ad!saveImg" method="post" enctype="multipart/form-data">
<table class="addcss">
<tr>
<td>
广告名称
</td>
<td>
<input class="easyui-validatebox" type="text" name="advertisementName" />
<font color="red"> *</font>
</td>
</tr>
<tr>
<td>
选择图片
</td>
<td>
<input class="easyui-validatebox" type="file" name="img" id = "img"/>
<font color="red"> *</font>
</td>

</tr>
</table>
<h2 align="center">
<input type="button" value="提交" />
<span id="error" style="color:red;padding-left: 20px;"></span>
</h2>

</form>

<script type="text/javascript">
function submit_form(){
var advertisementName = $("input[name='advertisementName']").val();
var img = $("input[name='img']");
if(advertisementName == "") {
$("#error").html("请输入广告名称");
return;
}
if(img.value == ""){
$("#error").html("请选择广告图片");
return;
}

//alert(img.val());
/*$.ajax({
type: "post",
url : "/ad!saveImg",
dataType: "json",
data:$("#ad_form").serialize(),
success: function(json){
if(json.succeed){

}
}
});*/
//$(".ad_form").submit();

/* $("#ad_form").form('submit', {
url:"/ad!saveImg",
success: function(data){
}
});*/

$.ajaxFileUpload({
url: '/ad!saveImg', //用于文件上传的服务器端请求地址
secureuri: false, //是否需要安全协议,一般设置为false
fileElementId: 'img', //文件上传域的ID
dataType: 'json', //返回值类型 一般设置为json
success: function (data){ //服务器成功响应处理函数
/* $("#img1").attr("src", data.imgurl);
if (typeof (data.error) != 'undefined') {
if (data.error != '') {
alert(data.error);
} else {
alert(data.msg);
}
}*/
}
});
}
</script>
</body>
</html>

/**
* 版本信息:V1.0
* 日期:2015-6-1
*
*/
package com.fhsy.action.advertisement;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;

import javax.annotation.Resource;

import org.apache.struts2.ServletActionContext;

import com.fhsy.action.BaseAction;

/**
*
* 创建人:dongsilin
* 创建时间:2015-6-1 上午09:47:55
* @version
*
*/

@SuppressWarnings("all")
public class advertisementAction extends BaseAction{

//广告图片文件
private File img;
//广告图片名称
private String imgFileName;

/**
* 保存广告图片
* @return
*/
public String saveImg(){

//检查图片的大小
if(isImg(img, imgFileName, 1024*5, 0, 0)==false){
super.ajaxJson(jsonShowInfo(false, "广告图片异常,请传5M以内的图片"));
return "saveImg";
}
String ramdomFileName=super.getRamdomFileName(imgFileName);//获取随机图片名称
//保存图片到指定文件夹
boolean check=super.uploadFile(img, imgFileName, "/advertisementsImg",ramdomFileName);
json(true, "广告发布成功");
return "saveImg";

}

public File getImg() {
return img;
}

public void setImg(File img) {
this.img = img;
}

public String getImgFileName() {
return imgFileName;
}

public void setImgFileName(String imgFileName) {
this.imgFileName = imgFileName;
}

}

/**
* 图片上传
* @param file
* @param name
* @param url
* @return
* @throws Exception
*/
public boolean uploadFile(File file, String name, String url,String rname) {
if (file != null) {
try {
InputStream in = new FileInputStream(file);
Long size=Long.parseLong(in.available()+"");
String img=(name.substring(name.lastIndexOf(".")+1,name.length())).toLowerCase();
if((img.equals("gif")||img.equals("png")||img.equals("jpg")||img.equals("jpeg"))&&size<5000000){
String dir = ServletActionContext.getRequest().getRealPath(url);

File uploadFile = new File(dir, rname);
OutputStream out = new FileOutputStream(uploadFile);
byte[] buffer = new byte[1024 * 1024];
int lenght;
while ((lenght = in.read(buffer)) > 0) {
out.write(buffer, 0, lenght);
}
in.close();
out.close();
}
} catch (Exception e) {
throw new RuntimeException(e);
}
}
return true;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: