第一步:引入需要的js
第二部:编写html页面
* 品牌名称: | |
* 上传商品图片(90x150尺寸): | 注:该尺寸图片必须为90x150。 |
品牌描述: | |
排序: | |
是否可用: | 可用 不可用 |
第三步:编写js代码模拟form表单上床图片、文件
//上传图片
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);
}
第四步:在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中配置上传文件的解析器
原文:http://www.cnblogs.com/rejoiceFromJesus/p/4694385.html