实现分服务器图片上传

来源:互联网 发布:手机炒股软件 vmacd 编辑:程序博客网 时间:2024/05/01 22:47

springmvc配置文件:

<!--图片上传--><bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">    <property name="maxUploadSize" value="1024000"/></bean>

注意:这里bean的id不能随便取
Controller代码

@Controller@RequestMapping("/upload")public class EbUploadController {    @RequestMapping("/uploadPic.do")    public void uploadPic(HttpServletRequest request, Writer out) throws IOException {        //把request转换成复杂request        MultipartHttpServletRequest mr = (MultipartHttpServletRequest) request;        //获得文件        Map<String, MultipartFile> map = mr.getFileMap();        Set<String> set = map.keySet();        Iterator<String> it = set.iterator();        String fileInputName = it.next();        MultipartFile mf = map.get(fileInputName);        //获得文件的字节数组        byte [] bs = mf.getBytes();        String fileName = new SimpleDateFormat("yyyyMMddHHmmssSSS").format(new Date());        Random random = new Random();        for(int i = 0; i < 3; i++){            fileName = fileName + random.nextInt(10);        }        String oriFileName = mf.getOriginalFilename();        //获得文件的后缀        String suffix = oriFileName.substring(oriFileName.lastIndexOf("."));        //获得上传文件的绝对路径        String realPath = ECPSUtils.readProp("file_path")+"/upload/"+fileName+suffix;        //获得相对路径        String relativePath = "/upload/"+fileName+suffix;        //创建jersy的客户端        Client client = Client.create();        //创建web资源对象        WebResource wr = client.resource(realPath);        //上传        wr.put(bs);        JSONObject jo = new JSONObject();        jo.accumulate("realPath", realPath);        jo.accumulate("relativePath", relativePath);        String result = jo.toString();        System.out.println(result);        out.write(result);    }}

如果此时报403错误,一般是因为服务器默认为只读,所以需要在tomcat/conf/web.xml中的org.apache.catalina.servlets.DefaultServlet添加如下代码

<init-param>      <param-name>readonly</param-name>      <param-value>false</param-value>   </init-param>
0 0