java异步上传图片

第一步:引入需要的js

<script src="/res/common/js/jquery.js" type="text/javascript"></script>
<script src="/res/common/js/jquery.form.js" type="text/javascript"></script><!----用来模拟form表单提交数据的组件--->

第二部:编写html页面

<form id="jvForm" action="add.do" method="post" enctype="multipart/form-data">
<table cellspacing="1" cellpadding="2" width="100%" border="0" class="pn-ftable">
<tbody>
<tr>
<td width="20%" class="pn-flabel pn-flabel-h">
<span class="pn-frequired">*</span>
品牌名称:</td><td width="80%" class="pn-fcontent">
<input type="text" class="required" name="name" maxlength="100"/>
</td>
</tr>

<tr>
<td width="20%" class="pn-flabel pn-flabel-h">
<span class="pn-frequired">*</span>
上传商品图片(90x150尺寸):</td>
<td width="80%" class="pn-fcontent">
注:该尺寸图片必须为90x150。
</td>
</tr>
<tr>
<td width="20%" class="pn-flabel pn-flabel-h"></td>
<td width="80%" class="pn-fcontent">
<img width="100" height="100" id="allImgUrl"/><!--用于显示上传成功后在页面上回显图片-->
<input type="hidden" name="imgUrl" id="path"/><!--需要提交到服务器的图片路径,因为是异步上传,所以需要带上imgurl的隐藏域-->
<input type="file" onchange="uploadPic()" name="pic"/><!--上传文件控件-->
</td>
</tr>

<tr>
<td width="20%" class="pn-flabel pn-flabel-h">
品牌描述:</td><td width="80%" class="pn-fcontent">
<input type="text" class="required" name="description" maxlength="80" size="60"/>
</td>
</tr>
<tr>
<td width="20%" class="pn-flabel pn-flabel-h">
排序:</td><td width="80%" class="pn-fcontent">
<input type="text" class="required" name="sort" maxlength="80"/>
</td>
</tr>
<tr>
<td width="20%" class="pn-flabel pn-flabel-h">
是否可用:</td><td width="80%" class="pn-fcontent">
<input type="radio" name="isDisplay" value="1" checked="checked"/>可用
<input type="radio" name="isDisplay" value="0"/>不可用
</td>
</tr>
</tbody>
<tbody>
<tr>
<td class="pn-fbutton" colspan="2">
<input type="submit" class="submit" value="提交"/> &nbsp; <input type="reset" class="reset" value="重置"/>
</td>
</tr>
</tbody>
</table>
</form>

第三步:编写js代码模拟form表单上床图片、文件

<script type="text/javascript">
//上传图片
function uploadPic(){
//定义参数
var options = {
url : "/upload/uploadPic.do",
dataType : "json",
type : "post",
success : function(data){
//回调 二个路径
//url
//path
$("#allImgUrl").attr("src",data.url);
$("#path").val(data.path);
}
};

//jquery.form使用方式
$("#jvForm").ajaxSubmit(options);

}

</script>

第四步:在springMVC中编写后台接受上上传的图片

/**
* 上传图片
* 商品
* 品牌
* @author lx
*
*/
@Controller
public class UploadController {

//上传图片
@RequestMapping(value = "/upload/uploadPic.do")
public void uploadPic(@RequestParam(required = false) MultipartFile pic,HttpServletResponse response){
//扩展名
String ext = FilenameUtils.getExtension(pic.getOriginalFilename());

//图片名称生成策略
DateFormat df = new SimpleDateFormat("yyyyMMddHHmmssSSS");
//图片名称一部分
String format = df.format(new Date());

//随机三位数
Random r = new Random();
// n 1000 0-999 99
for(int i=0 ; i<3 ;i++){
format += r.nextInt(10);
}
/*下面是使用jersey把图片上传到另外一个tomcat,如果是一般保存图片,可以使用javaWEB中一般的方式,因为方法参数pic就是上传的图片或文件

//实例化一个Jersey
Client client = new Client();
//保存数据库
String path = "upload/" + format + "." + ext;

//另一台服务器的请求路径是?
String url = Constants.IMAGE_URL + path;
//设置请求路径
WebResource resource = client.resource(url);

//发送开始 POST GET PUT
try {
resource.put(String.class, pic.getBytes());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

//返回二个路径
JSONObject jo = new JSONObject();
jo.put("url", url);
jo.put("path",path);

ResponseUtils.renderJson(response, jo.toString());
}

}

第五步:在spring-mvc.xml中配置上传文件的解析器

<!-- 上传图片 -->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!-- 最大上传尺寸 B 1M -->
<property name="maxUploadSize" value="1048576"/>
</bean>

时间: 2024-11-06 03:56:40

java异步上传图片的相关文章

ajax异步上传图片&amp;SpringMVC后台代码

function uploadPic(){ var options = { url : "/upload/updatePic.action", type : "post", dataType : "json", success : function(data){ $("#allUrl").attr("src", data.url); $("#imgUrl").val(data.url);

搭建一个Tomcat,作为图片服务器,异步上传图片

1.图片服务器Tomcat的设置  tomcat/conf/web.xml中内容更改,将tomcat设置为可以读写 <servlet>     <servlet-name>default</servlet-name>             <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>         <init-param>   

利用KindEditor的uploadbutton实现异步上传图片

利用KindEditor的uploadbutton实现异步上传图片 异步上传图片最常用的方法就是图片在iframe中上传,这样只需要刷新iframe,而不用刷新整个页面.     KindEditor文本编辑器框架中uploadbutton可以帮助我们实现,不再需要我们自己去写iframe的实现,使用起来很方便. html部分: ..... <input class="" type="text" name="beautyTown.img_0"

[Ajax] 使用Ajax异步上传图片文件(非Form表单提交)

通过表单Form提交来上传文件的方式这里就不说了: 下面介绍,通过js中使用ajax异步上传图片文件: 新建一个html页面和一个一般处理程序即可: 涉及思路: //发送2次Ajax请求完成js异步上传文件的操作:          //第1次,post 只上传文件,返回文件名name          //第2次,get 根据文件名name定位服务器上的文件,同时根据浏览器传过来的realname重命名服务器上的文件          //(如果有其他参数,也可以通过第2次一并上传) 图片文件

php结合jquery异步上传图片(ajaxSubmit)

php结合jquery异步上传图片(ajaxSubmit),以下为提交页面代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <he

在.net MVC中异步上传图片或者文件

今天用到了MVC异步上传图片,找了半天写下来以后方便查找异步提交图片需要一个MyAjaxForm.cs             地址http://pan.baidu.com/s/1i3lA693 密码txgp 前台代码 @using (Ajax.BeginForm("AddMessages", "MenuInfo", new AjaxOptions { HttpMethod = "post", OnSuccess = "Successd

异步上传图片,光用jquery不行,得用jquery.form.js插件

异步上传图片,光用jquery不行,得用jquery.form.js插件,百度一下下载这个插件,加jquery,引入就可以了 <form id="postbackground" method="POST" action="#" enctype="multipart/form-data"> <input name="upload" type="file" id="

MVC异步上传图片到本地/服务器

这两天朋友问我,有没有异步上传图片到本地/服务器这种demo,他有用, 我就想,好吧, 那刚好周末了,整理一套出来. 主要用到的是jquery uploadify 这个juqery的插件 ,可以无刷新,直接后台上传返回地址 下面先看前台的代码: @{ ViewBag.Title = "Demo"; Layout = "~/Views/Shared/_Layout.cshtml"; } @section styles{ <link href="~/Co

java实现上传图片存入到数据库

java实现上传图片存入到数据库,要保存的是图片的二进制,不是路径. 原文:java实现上传图片存入到数据库 源代码下载地址:http://www.zuidaima.com/share/1550463361518592.htm 源代码截图: