springmvc spring mybatis 文件上传

来源:互联网 发布:学建筑学不下去知乎 编辑:程序博客网 时间:2024/06/04 19:25
Java代码 改代码借鉴其他博客的代码   大同小异  如果你在显示图片时报错误  错误在Client client = Client.create()这句话本没有错  报错原因是因为我的jdk是1.8  而jery架包的版本是1.18.1之后换成1.18.2 就不再报错此代码你可以划分为几大部分 第一步  从请求体request中把相应的文件获取到  第二步 为了避免名称重复采用时间命名 也可以采用32位的哈希code方法生成  也可以打散目录也就是目录分层 第三步 创建服务器由于资金有限  用本机做第二台服务器 第四步 将相对路径和绝对路径返回到页面 package com.cb.ssm.controller;import java.io.PrintWriter;import java.text.SimpleDateFormat;import java.util.Date;import java.util.Random;import javax.servlet.http.HttpServletRequest;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.multipart.MultipartHttpServletRequest;import org.springframework.web.multipart.commons.CommonsMultipartFile;import com.cb.ssm.utils.Conmmons;import com.sun.jersey.api.client.Client;import com.sun.jersey.api.client.WebResource;@Controller@RequestMapping("/upload")public class UploadController {@RequestMapping("uploadPic")public void uploadPic(HttpServletRequest request, String fileName,PrintWriter out){//将request转化为多部件请求对象MultipartHttpServletRequest mh = (MultipartHttpServletRequest) request;//根据文件名获取文件对象CommonsMultipartFile cmFile = (CommonsMultipartFile) mh.getFile(fileName);//获取文件流上传对象byte[] fileBytes = cmFile.getBytes();//避免文件名称在服务器上可能出现重复String newFileName = "";SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");newFileName = sdf.format(new Date());Random r = new Random();for(int i=0; i<3; i++){newFileName = newFileName + r.nextInt(10);}//获取文件 扩展名String kFileName = cmFile.getOriginalFilename();//获取文件后缀名String suffix = kFileName.substring(kFileName.lastIndexOf("."));System.out.println(kFileName+"  "+ suffix);System.out.println(newFileName);//创建jesy服务器,进行跨服务器上传Client client = Client.create();System.out.println("创建成功");//把文件关联到远程服务器WebResource resource = client.resource(Conmmons.PIC_HOST+"/upload/"+newFileName+suffix);//上传文件resource.put(String.class,fileBytes);System.out.println("文件已上传");//ajax回调函数显示//图片需要回写 : 需要图片的完整路径//数据库保存图片的相对路径String fullPath = Conmmons.PIC_HOST+"/upload/"+newFileName+suffix;//相对路径String relativePath = "/upload/"+newFileName+suffix;//{"":"","":""}String result = "{\"fullPath\":\""+fullPath+"\",\"relativePath\":\""+relativePath+"\"}";out.print(result);}}







页面及时回写  此代码用的是别人的代码非原创  本文章只是想表达同样的代码可以出现不同的很多错误

<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%><%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %><%@ taglib uri="http://java.sun.com/jsp/jstl/fmt"  prefix="fmt"%><c:set var="picPath" value="http://127.0.0.1:8003/ssmImage"></c:set><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>修改商品信息</title><script type="text/javascript" src="${pageContext.request.contextPath }/js/jquery.js"></script><script type="text/javascript" src="${pageContext.request.contextPath }/js/jquery.form.js"></script><script type="text/javascript">function submitImgSize1Upload() {var option={type:'POST',url:'${pageContext.request.contextPath }/upload/uploadPic.do',dataType:'text',data:{fileName : 'imgSize1File'},success:function(data){//把json格式的字符串转换成json对象var jsonObj = $.parseJSON(data);//返回服务器图片路径,把图片路径设置给img标签$("#imgSize1ImgSrc").attr("src",jsonObj.fullPath);//数据库保存相对路径$("#imgSize1").val(jsonObj.relativePath);}};$("#itemForm").ajaxSubmit(option);}</script></head><body> <form id="itemForm" action="${pageContext.request.contextPath }/items/saveOrUpdate.do" method="post"><input type="hidden" name="id" value="${item.id }"/>修改商品信息:<table width="100%" border=1><tr><td>商品名称</td><td><input type="text" name="name" value="${item.name }"/></td></tr><tr><td>商品价格</td><td><input type="text" name="price" value="${item.price }"/></td></tr><tr><td>商品生产日期</td><!--  --><td><input type="text" name="createtime" value="<fmt:formatDate value="${item.createtime}" pattern="yyyy-MM-dd HH:mm:ss"/>"/></td></tr><tr><td>商品图片</td><td><p><label></label><img id='imgSize1ImgSrc' src='${picPath }${item.pic }'  height="100" width="100" /><input type='file' id='imgSize1File' name='imgSize1File' class="file" onchange='submitImgSize1Upload()' /><span class="pos" id="imgSize1FileSpan">请上传图片的大小不超过3MB</span>        <input type='hidden' id='imgSize1' name='pic' value='' reg="^.+$" tip="亲!您忘记上传图片了。" /></p></td></tr><tr><td>商品简介</td><td><textarea rows="3" cols="30" name="detail">${item.detail }</textarea></td></tr><tr><td colspan="2" align="center"><input type="submit" value="提交"/></td></tr></table></form></body></html>

springmvc.xml文件配置

<!--文件上传解析器  --><bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"><property name="maxUploadSize" value="10240000"></property></bean>


阅读全文
1 0
原创粉丝点击