我使用spring 3想实现文件上传,现在有一点问题:
我想实现如下图的效果,点击上传按钮,文件没有真正上传,而是在下面的表格中显示出来。当点击新增的时候,一并上传资料。这个要如何实现?

解决方案 »

  1.   

    试试这个, 在上载档案那个输入框加入onchange事件, 每次值更改以后用js代码生成一个type为file的input输入框, 值为上载档案输入框的值, 然后放入到上面那个form中, 点击提交的时候提交上面的form.
    java代码中获取参数数组.
      

  2.   

    jquery.uploadify这个插件已经实现楼主要求的功能,楼主可以用这个插件,就不用自己写了
      

  3.   

    二楼的方法可行,我是这么干的。
    在浏览后边添加个按钮 - 添加到上传列表,点击之后,将当前的input type=file 隐藏并在原来位置生成一个新的,大体就这个思路
      

  4.   

    提交form表单嘛!!!就像你说的,先显示,不提交,等真正提交时全部提交不就完了,还有什么吗?!!!
      

  5.   


    我目前遇到的困難是,如何局部刷新,不是如何上傳。你們可能沒有真正理解我的問題。我上面那個畫面其實是兩部分,上傳畫面是include到上面的畫面中的。上面一個form,下面一個form。現在的問題是,在上傳的form中點擊上傳,要進入spring controller,上傳文件後,更新列表,只刷新上傳畫面的列表這部分,上面的畫面不能刷新,一刷新,別人填寫的資料都沒有了。我的關鍵點就在這,別給我說如何上傳。我用的jquery,如果用jquery提交表單,類似與$.get這種方式提交,那麽文件流是無法傳遞給controller的。
      

  6.   

    我这样理解正确么? 就是你要在下面那个表格选择文件后直接上传到服务器. 提交以后上面那个表格不刷新, 只刷新下面那个列表对么? 这样子的话是不是用iframe把下面的框起来就行了?
      

  7.   

    可以这样子:第一次显示只提交上传的那个form,第二次点击新增的时候,使用js将两个表单提交同时提交,在提交时加一个隐含的id,保证两个form的对应关系。第二种方案:第一次显示在上传文件后不将文件删除,而是在保证文件名唯一的情况下返回文件的全路径,放在上面页面的一个隐含域中,第二次提交只提交上面的form即可(把下面form的一些字段收集到上面的form中)。