springMVC上传附件

今天刚好看到上传附件的代码,综合以前看的代码,记录一点,也不算是收获,算是备忘吧。

参考文章链接:

SpringMVC 理论与实用技术(二)文件上传

首先,在web.xml中,

<servlet>
    <servlet-name>springmvc</servlet-name>
    <servlet-class>
			org.springframework.web.servlet.DispatcherServlet
		</servlet-class>
    <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>
				/WEB-INF/classes/mvc-config.xml
			</param-value>
    </init-param>
    <load-on-startup>2</load-on-startup>
  </servlet>

对应的mvc-config.xml中,进行配置。

在beans中,增加对文件上传的支持。

<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <!-- one of the properties available; the maximum file size in bytes -->
        <property name="defaultEncoding" value="UTF-8"/>
        <property name="maxUploadSize" value="209715200"/>
        <!-- 20M -->
        <!-- 要在WebContent下建立一个upload文件夹
        <property name="uploadTempDir" value="upload"/>
        -->
    </bean>

在form表单中,只要是有, 标签用的是springmvc的form.

<input type="file" name="txtFile" class="span6" id="txtFile" />

就会有一个上传文件按钮。

这里的type,必须是file,id自己定义。

但是,id的定义,需要与后台的参数相对应。

如果后台controller方法中,只需要接收,上传文件这一个参数,写法如下(下面代码参考SpringMVC 理论与实用技术(二)文件上传):.

@RequestMapping("/upload")
    public String upload(@RequestParam("txtFile") CommonsMultipartFile file ,HttpServletRequest request) throws IOException{</span>

    return "success";
}

如果有其他参数,需要一同传入到controller中,写法如下:

@RequestMapping(value = "/form/upload")
    public ModelAndView edit(PProductAccessoryForm form) throws Exception {
        String forwardString = "product/accessory/upload";
        Map<String, Object> model = new HashMap<String, Object>();

        model.put("form", form);
        return new ModelAndView(forwardString, model);
    }

其中,参数:PProductAccessoryForm,是另一个参数类,里面封装所有的需要传入的参数,其中包括上传的文件。

public class PProductAccessoryForm extends DataTableForm<PProductAccessory> {

	private String name;
	private CommonsMultipartFile txtFile = null;

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public CommonsMultipartFile getTxtFile() {
		return txtFile;
	}

	public void setTxtFile(CommonsMultipartFile txtFile) {
		this.txtFile = txtFile;
	}
}

还有一种,没有用,也没有验证过的方式,(下面代码参考SpringMVC 理论与实用技术(二)文件上传):

@RequestMapping("/upload2")
public void upload2(HttpServletRequest request,HttpServletResponse response) throws IllegalStateException, IOException
{
    CommonsMultipartResolver multipartResolver=new CommonsMultipartResolver();  

    if (multipartResolver.isMultipart(request)) {
        MultipartHttpServletRequest multipartRequest=(MultipartHttpServletRequest)request;  

        Iterator<String> iter=multipartRequest.getFileNames();
        while(iter.hasNext())
        {
            MultipartFile file=multipartRequest.getFile((String)iter.next());
            if (file!=null) {  

                String filename="demo"+file.getOriginalFilename();
                String path="D:/"+filename;
                File localfile=new File(path);
                file.transferTo(localfile);  

            }
        }
    }
} 

第三种,有机会再进行验证,成功后补充博客。

这就是springMVC中,上传文件的操作了。

时间: 2024-10-26 23:24:06

springMVC上传附件的相关文章

Java操作,springMVC上传的文件

上篇文章写了如何用springMVC上传文件,现在记录一下如何操作上传的文件. 操作,无非是读取文件,写入磁盘上另一个文件中.(用的IO,NIO正在研究). InputStream fis =null; FileOutputStream fos= null; SimpleDateFormat format=new SimpleDateFormat("yyyyMMddHHmmss"); 1.获取文件名: //要上传的附件名,带后缀 String accessName = form.get

java上传附件到文件系统

图片,word,text文件在数据库中是不能以varchar2类型存储的,在orca中以clob,blob类型存储.在SqlServer中以img,txt类型存储.把附件存储在数据库中的好处是附件不容易丢失,不过要写入数据库,然后在读出来就有点不方便了.难道一定要把附件存储在数据库中? 可以把附件的相对地址存储在数据库中.附件真真保存在文件系统中.这样很容易读出来: Myproject工程下webroot下有一个目录picture专门用来存储图片 数据库中有一字段tPath存储相对路径如:Str

论坛上传附件错误:不支持 无组件 上传,服务器可能未安装该组件

安装了动网论坛,发表文章不能上传附件,上传就提示"不支持 无组件 上传,服务器可能未安装该组件":我给他空间装了ASP探针,看了下服务器的情况: 动网论坛上传附件错误 什么服务器么,一个上传组件都不装,能支持上传么,看来只能用无组件上传了,从后台可以看到服务器支持无组件上传:可是我选择了无组件上传,根据百度到的信息,选取生成预览图片组件 和 图片水印设置开关 均为 关闭 状态,还是不能上传图片: 还是度娘强大啊,最后有人说: 看你是不是把PreviewImage删除了,传上去即可 就算

ckeditor-完整CKEditor+CKFinder上传附件demo

问题描述 完整CKEditor+CKFinder上传附件demo 有没有完整的javaWeb示例,可以上传图片和其他附件(最基本保证能上传图片),急急急! 解决方案 在JSP里使用CKEditor和CKFinder:http://www.cnblogs.com/yuepeng/archive/2013/04/01/2992097.html CKEditor3.6.4上传路径配置--java版:http://www.cnblogs.com/sfmjp/articles/2827858.html 解

限制上传文件大小-Springmvc上传文件限制大小,异常处理返回报错信息后,eclipse控制台还报错

问题描述 Springmvc上传文件限制大小,异常处理返回报错信息后,eclipse控制台还报错 1.web.xml配置: <?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/X

上传附件 文件类型 没有限制 到 mySql中

问题描述 上传附件 文件类型 没有限制 到 mySql中 上传附件,文件类型 没有限制,我现在使用的是二进制的字节流方式,添加到数据库中 数据库字段类型为 longblob 问题出在 保存字节的时候 ,我只把最后 一段字节 保存到了数据库中. 请问高手 我应该怎样把 全部的字节都保存到 数据库中

java上传附件问题弹出大小限制

问题描述 java上传附件问题弹出大小限制 Java中上传附件大小限制都取消了,不知道哪还是弹出来"上传文件大小不能超过8M的最高限额,请重新上传" 解决方案 把代码贴出来看看.1.代码中的限制没清楚掉,java或者使用的上传附件插件中有限制2.你将附件上传到哪啊,如果是附件服务器或者ftp 可以看一下是否服务器有限制. 解决方案二: java文件上传大小限制在xml和js,以及后台都可以设置的.看看是不是其中的一个没有改掉啊.

自定义表单-dedecms如何在前台上传附件到网站后台啊

问题描述 dedecms如何在前台上传附件到网站后台啊 各位大侠,我用dedecms建立了一个网站现在需要建立一个页面(栏目)就是允许任何访问者用户上传附件到该网站,我使用自定义表单上传制作了附件上传功能,但是在本地测试的时候上传上去后台没有反应,求大侠支招,看看怎么回事,另外除了这个办法是否还有另外一个办法可以实现此功能,谢谢大侠们,小弟在此拜过!小弟附上设计稿, 解决方案 自己帮自己顶下,求大侠指点一二 解决方案二: 你贴个页面有什么用..........

帝国 百度编辑器-请问下,我用的是百度编辑器,放在帝国上,不能上传附件,是什么问题?

问题描述 请问下,我用的是百度编辑器,放在帝国上,不能上传附件,是什么问题? http://bbs.phome.net/showthread-42-301899-0.html 用的是这个的. 但是提示if(info>state="SUCCESS"){错误,无法上传附件.