我正在修改一个通过jsp表单控制实体维护的应用程序。没关系,但主要实体(Contrato)有自己的形式有很多其他维护,而我的客户不想在中间重定向,所以我必须通过modals / javascript和jquery更改所有jsp辅助维护。
到目前为止,当我正在尝试管理文件时,目前还没有任何问题:
在以前的jsp视图中,我有一个<form:input>
:
<form:input path ="documento" type="file" name="Documento"/>
然后,我有一个带有属性的辅助java类:
private MultipartFile documento;
这里在映射请求时完全接收到MultipartFile。
现在,我有一个使用<input>
<input id="documento" name="documento" type="file" style="width: 100%">
如果我在java中请求documento
,我会得到一个字符串:
C:\fakepath\file.ext
经过多次尝试后,使用FileReader
我可以在变量中存储文件的URL
:
function handleFileSelect(event) {
input = event.target;
reader = new FileReader();
reader.onload = function(e) {
arrayBuffer = reader.result;
}
}
现在调试,我可以看到arrayBuffer
变量是:
数据:应用/ PDF; BASE64,JVBERi0xLjQKJbXtrvsKMyAwIG9iago8PCAvTGVuZ3RoIDQ ... QgMTAxMSAwIFIKICAgL0luZm8gMTAxMCAwIFIKPj4Kc3RhcnR4cmVmCjIxMTYzMgolJUVPRgo .....
哪个文件有效URL
。但是当我尝试将其作为@RequestMapping
发送到@RequestParam
时:
@RequestParam(value="file",required=false,defaultValue="0") Object file,
http://localhost:8080/my/url/documentoSubmit?file=data%3Aap…MTQ2MSAwIFIKICAgL0luZm8gMTQ2MCAwIFIKPj4Kc3RhcnR4cmVmCjMwMTc4MgolJUVPRgo%3D...
无法加载资源:服务器响应状态为400(Petición错误)
如何将javascript URL
发送到java服务器端以在DB中保留它?