如何仅使用 EL 解析多部分表单数据
How to parse multipart form-data using only EL
类似于${param.key}
,有没有办法在没有Java的情况下使用EL解释multipart/form-data加密形式?
如果不可能,是否有解决方法可以在不使用 multipart/form-data 加密的情况下将文件输入包含在表单中?
multipart/form-data
用于上传文件。这可能很大,上传它可能需要一段时间。为了不阻塞其他传入请求,处理可以是异步的。
与Java:
@MultipartConfig:
对于接收 multipart/form-data 的 servlet,您必须在 servlet 前面添加 @MultipartConfig
注释,以便通过调用 request.getParameter("notFileFieldName");
获取纯文本参数的值。否则调用将 return 无效。
但是对于文件及其内容,它不是这样工作的。
文件名、内容类型、大小和内容可以从 Part
对象 return 中检索
request.getPart("theFileFieldName");
对于 JSP,您可以在 web.xml 中添加以下代码片段:
<servlet>
<servlet-name>UploadFile</servlet-name>
<jsp-file>/path/form.jsp</jsp-file>
<multipart-config></multipart-config>
</servlet>
<servlet-mapping>
<servlet-name>UploadFile</servlet-name>
<url-pattern>/path/form.jsp</url-pattern>
</servlet-mapping>
行 <multipart-config></multipart-config>
为 JSP 激活上述行为。
所以 ${param.notFileFieldName}
将被评估为它的值。
但不是 ${param.theFileFieldName}
AsyncContext 可用于处理上传
但你不会 java 解决方案。
使用Java脚本:FileReader()
如何在客户端读取文件的基本示例。 (没有上传)
资料来源:https://developer.mozilla.org/de/docs/Web/API/FileReader/readAsDataURL
HTML
<input type="file" onchange="previewFile()"><br>
<img src="" height="200" alt="Image preview...">
Java脚本:
function previewFile() {
var preview = document.querySelector('img');
var file = document.querySelector('input[type=file]').files[0];
var reader = new FileReader();
reader.addEventListener("load", function () {
preview.src = reader.result;
}, false);
if (file) {
reader.readAsDataURL(file);
}
}
如果需要上传,可以完成 AJAX。
类似于${param.key}
,有没有办法在没有Java的情况下使用EL解释multipart/form-data加密形式?
如果不可能,是否有解决方法可以在不使用 multipart/form-data 加密的情况下将文件输入包含在表单中?
multipart/form-data
用于上传文件。这可能很大,上传它可能需要一段时间。为了不阻塞其他传入请求,处理可以是异步的。
与Java:
@MultipartConfig:
对于接收 multipart/form-data 的 servlet,您必须在 servlet 前面添加 @MultipartConfig
注释,以便通过调用 request.getParameter("notFileFieldName");
获取纯文本参数的值。否则调用将 return 无效。
但是对于文件及其内容,它不是这样工作的。
文件名、内容类型、大小和内容可以从 Part
对象 return 中检索
request.getPart("theFileFieldName");
对于 JSP,您可以在 web.xml 中添加以下代码片段:
<servlet>
<servlet-name>UploadFile</servlet-name>
<jsp-file>/path/form.jsp</jsp-file>
<multipart-config></multipart-config>
</servlet>
<servlet-mapping>
<servlet-name>UploadFile</servlet-name>
<url-pattern>/path/form.jsp</url-pattern>
</servlet-mapping>
行 <multipart-config></multipart-config>
为 JSP 激活上述行为。
所以 ${param.notFileFieldName}
将被评估为它的值。
但不是 ${param.theFileFieldName}
AsyncContext 可用于处理上传
但你不会 java 解决方案。
使用Java脚本:FileReader()
如何在客户端读取文件的基本示例。 (没有上传) 资料来源:https://developer.mozilla.org/de/docs/Web/API/FileReader/readAsDataURL
HTML
<input type="file" onchange="previewFile()"><br>
<img src="" height="200" alt="Image preview...">
Java脚本:
function previewFile() {
var preview = document.querySelector('img');
var file = document.querySelector('input[type=file]').files[0];
var reader = new FileReader();
reader.addEventListener("load", function () {
preview.src = reader.result;
}, false);
if (file) {
reader.readAsDataURL(file);
}
}
如果需要上传,可以完成 AJAX。