Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
File upload 在SpringMVC中从自定义表单标记中上载文件 上下文_File Upload_Spring Mvc_Taglib - Fatal编程技术网

File upload 在SpringMVC中从自定义表单标记中上载文件 上下文

File upload 在SpringMVC中从自定义表单标记中上载文件 上下文,file-upload,spring-mvc,taglib,File Upload,Spring Mvc,Taglib,应用程序管理员端的一部分要求用户编辑各种类型的内容,包括使用富文本编辑器或使用文件生成应用程序“客户端”用户可以看到的内容。这是一种特定于领域的CMS lite 因为这个“内容”可以在应用程序的各个部分中使用,所以在我们的一些领域实体中,它被作为一个单独的关系包含。我们决定创建自己的标记库,定义一些表单字段,管理员编辑包含内容的实体时,这些表单字段可用于编辑此内容 问题 我们希望能够做到以下几点 <form:form modelAttribute=...> <olo:c

应用程序管理员端的一部分要求用户编辑各种类型的内容,包括使用富文本编辑器或使用文件生成应用程序“客户端”用户可以看到的内容。这是一种特定于领域的CMS lite

因为这个“内容”可以在应用程序的各个部分中使用,所以在我们的一些领域实体中,它被作为一个单独的关系包含。我们决定创建自己的标记库,定义一些表单字段,管理员编辑包含内容的实体时,这些表单字段可用于编辑此内容

问题 我们希望能够做到以下几点

<form:form modelAttribute=...>
    <olo:content-editor path="content"/>
    <!-- Other form fields for this entity -->
    <form:.../>
    <form:.../>
</form:form>
可用于替换与基于文件的内容关联的文件

问题在于Spring文档表明文件上传要求表单具有
enctype
来定义它正在发送多部分表单数据。由于文件上传是标签的一部分,而不是表单本身,我们发现这是不可取的。我们希望能够在表单中使用
olo:content editor
标记,而无需更改表单
enctype
属性。这可能吗

可能的解决方案 我们可以想到两种客户端黑客可能会解决我们的问题,但它们似乎都是相当丑陋的解决方案:

  • 在基于文件的内容标记中包含一个脚本,该脚本在加载时更改表单
    enctype
    ,以便始终将其设置为适当的类型。(非常难看。)
  • 将文件数据作为常规隐藏表单字段提交,其中的数据是通过使用HTML5文件API设置的(管理员使用兼容的浏览器。这看起来不那么难看,但仍然不是最佳解决方案。)
<input type="file" name="file/>